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编码问题

将可编码结构编码为 Alamofire POST 参数 - Swift

使用 moya 和 alamofire 时使用参数编码发布请求错误

使用 Alamofire 的多部分 POST

Swift 4 Alamofire 和编码 UIImage 的问题

Swift 中的 Alamofire .post。 “调用结果未使用,但产生‘DataRequest’