Alamofire - 不好的要求

问题描述 投票:0回答:1

我恐怕无法分享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?我该如何解决 ?

ios swift alamofire postman objectmapper
1个回答
0
投票

试着替换

URLEncoding.httpBodyJSONEncoding.default

JSONEncoding.default

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

Alamofire reference

© www.soinside.com 2019 - 2024. All rights reserved.