Alamofire POST编码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Alamofire POST编码问题相关的知识,希望对你有一定的参考价值。
我正在尝试登录Web服务,如下所示:
func Login(completionHandler:@escaping (Bool) -> ()) {
let url = MyUrl
let parameters: Parameters = [
"Password":password,
"StayLoggedIn":NSNumber(value: true),
"UserName":username
]
var headers:HTTPHeaders = commonHeaders()
headers["Content-Type"] = "application/json;charset=UTF-8"
Alamofire.request(url, method:.post, parameters:parameters, headers:headers).responseJSON { response in
switch response.result {
case .success:
debugPrint(response)
case .failure(let error):
print(error)
}
}
}
不知何故,服务器返回501错误。我正在重写Swift中的Obj-c应用程序,并将AURofire的NSURLSessions替换为讨价还价。
我在工作的obj-c应用程序中看到的是发送到服务器的标头包含
Content-Type: application/json;charset=UTF-8
如您所见,我明确地将此标头添加到我的请求中,但不知何故,它不会发送到服务器。
我还看到,我的登录凭据不会发送到服务器。
所以,我想我的问题是:如何告诉Alamofire使用正确的编码/内容类型?
答案
试试这个编码application/x-www-form-urlencoded
而不是application/json;charset=UTF-8
以上是关于Alamofire POST编码问题的主要内容,如果未能解决你的问题,请参考以下文章
将可编码结构编码为 Alamofire POST 参数 - Swift
使用 moya 和 alamofire 时使用参数编码发布请求错误