Alamofire 4.3无法发送JSON请求

时间:2017-01-22 15:06:20

标签: ios json swift alamofire

Iam尝试使用Alamofire发送JSON请求,但它不能作为JSON请求在这里使用我的JSON:

{"ClientID":"55050","AdminId":"myemail","Password":"123"}

content-type →  application/json; charset=utf-8

这是我的代码:

import Alamofire

func doLogin(username:String ,password:String) {
    let parameters = ["ClientID":"55050" , "AdminId":username,"Password":password]

    Alamofire.request("myurl.com", method: .post, parameters: parameters, encoding: JSONEncoding(options: []) ).responseJSON(completionHandler: {
        response in
        print(response)
    })

这是我得到的回应

FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 3." UserInfo={NSDebugDescription=Invalid value around character 3.}))

2 个答案:

答案 0 :(得分:1)

通过阅读文档,我只需要将标题设置为application / json

所以我添加了额外的参数标题:

let headers: HTTPHeaders = [
            "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
            "Accept": "application/json"
        ]
 Alamofire.request(ApiKeys().login, method : .post , parameters : parameters, encoding: JSONEncoding.default ,  headers: headers).responseJSON { response in

        }

现在它完美地感谢每个人试图帮助:)

答案 1 :(得分:1)

您的请求中似乎必须错过标题。所以,没有回应。 您的标头必须是字典[String: String]

let header = ["Content-Type" : "application/json"]

您的样品申请应为:

Alamofire.request(getCategoryPath, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: header)
        .responseJSON { response in
     guard response.result.error == nil else {
            print(response.result.error!)
}

print(response.result.value)

}