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 请求无法快速工作的主要内容,如果未能解决你的问题,请参考以下文章
obj-c AFNetworking 2.0 POST 请求不起作用
AFNetworking 2.0:是不是可以将纯 json 放入 POST 请求的正文中?
使用 AFNetworking 2.0 如何使用 JSON 测试我的 POST 请求的大小?