Alamofire-错误的请求

时间:2018-09-04 06:42:40

标签: ios swift alamofire postman objectmapper

恐怕我无法共享API网址。但是我已经检查过 Postman ,它可以工作。这是一个 POST 请求,以下是响应:

{
    "user_key": "b0aebdedb15e2beaaf479ca3c4f8227e8e970681"
}  

邮递员屏幕截图:

enter image description here

在代码中,这是我使用Alamofire发出的请求:

Alamofire.request("some url", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: ["Content-Type":"application/json"])
            .responseObject { (response: DataResponse<User>) in

                let userResponse = response.result.value
                print("")
    }

但是userResponse变为零。这是 User 对象:

import ObjectMapper

class User: Mappable {

    var authToken: String?

     required init?(map: Map) {

    }

    func mapping(map: Map) {
        self.authToken <- map["user_key"]
    }


}

我在这里使用ObjectMapper

假设它不是JSON对象,我试图将其作为String处理:

 Alamofire.request("some url", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: ["Content-Type":"application/json"])
            .responseString { (response: DataResponse<String>) in
                let dataUser = response.data as! Any
                let dataUser1 = response.data as! AnyObject
                let error = response.error
                let code = response.response?.statusCode
                print(response.value)
                print(response.result.value)
        }  

仍然没有。我无法检索该值。但是状态码显示为400(错误请求)。 到底是什么? JSON个对象还是String?我该如何解决?

1 个答案:

答案 0 :(得分:0)

只需尝试更换

URLEncoding.httpBodyJSONEncoding.default

JSONEncoding.default

使用JSONSerialization创建参数对象的JSON表示,该对象设置为请求的主体。编码后的请求的Content-Type HTTP标头字段设置为application/json

Alamofire reference