AFNetworking 2.0 POST 请求无法快速工作

Posted

技术标签:

【中文标题】AFNetworking 2.0 POST 请求无法快速工作【英文标题】:AFNetworking 2.0 POST request not working swift 【发布时间】:2014-10-30 21:41:50 【问题描述】:

我遇到了 AFNetworking 2.0(在 Swift 上编码)的问题。图书馆的 GET 方法似乎对我来说很完美。虽然,POST 方法返回我错误。错误是错误的用户名/密码。乍一看,这似乎是一个身份验证问题,但实际上当我在 Postman(REST 客户端)上尝试 POST 请求时效果很好。

所以我在做什么:

配置:

var policy : AFSecurityPolicy = AFSecurityPolicy();
policy.allowInvalidCertificates = true;

self.client = AFHTTPRequestOperationManager(baseURL: self.basicUrl)
self.client!.operationQueue = NSOperationQueue.mainQueue()
self.client!.securityPolicy = policy

var responseSerializer : AFJSONResponseSerializer = AFJSONResponseSerializer()

self.client!.responseSerializer = responseSerializer

var requestSerializer : AFJSONRequestSerializer = AFJSONRequestSerializer()
requestSerializer.setValue("application/json", forHTTPHeaderField: "Accept")

self.client!.requestSerializer = requestSerializer

还有我的要求

internal func loginUser(email : String, password : String, onCompletion : WebClientLoginResponse) -> Void

    var params : Dictionary = ["email":email, "pass":password]

    self.client!.POST("login", parameters: params, success:  (operation : AFHTTPRequestOperation!, response : AnyObject!) -> Void in

        var finalResponse : Dictionary = Dictionary<String, String>()

        finalResponse = response as Dictionary

        onCompletion(true, nil, nil, nil)

        )  (operation : AFHTTPRequestOperation!, error : NSError!) -> Void in

            println("Error \(error.description) \(operation.responseObject) ")

            onCompletion(false, nil, nil, nil)
    

你们觉得呢?我错过了什么吗?

谢谢!

【问题讨论】:

【参考方案1】:

您的服务器是否需要 JSON 编码的参数?查看接受的answer to this question。

另外,请考虑使用 AFNetworking 的 Swift 版本 AlamoFire,它具有更简单 (恕我直言) 设置编码格式的方法。

【讨论】:

嘿托德首先感谢您的回答。似乎问题在于我也在设置 requestSerializer 。 (不仅是 responseSerializer)。似乎如果您同时分配它们,则 POST 不起作用(出于某种奇怪的原因)。结果,当我删除配置 requestSerializer 的行时,POST 工作正常!我不知道为什么! 哦,我没注意到!似乎可能是 AFNetworking 中的错误。很高兴它现在可以工作了。 @Tzegenos 谢谢,删除这些行解决了我的问题!

以上是关于AFNetworking 2.0 POST 请求无法快速工作的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 2.0 POST 请求的问题

obj-c AFNetworking 2.0 POST 请求不起作用

AFNetworking 2.0:是不是可以将纯 json 放入 POST 请求的正文中?

使用 AFNetworking 2.0 如何使用 JSON 测试我的 POST 请求的大小?

用于 POST 的 AFNetworking 2.0 自定义标头

AFNetworking 2.0 多部分请求正文空白