恐怕我无法分享 API 网址。但我检查了 postman , 有用。这是一个 发布 请求和以下是响应:
{
"user_key": "b0aebdedb15e2beaaf479ca3c4f8227e8e970681"
}
postman 截图:
在代码中,这是我使用 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 为零。这是用户 目的 :
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
?我该如何解决 ?
最佳答案
只是尝试更换
这个URLEncoding.httpBody
至JSONEncoding.default
JSONEncoding.default
用途 JSONSerialization
创建参数对象的 JSON 表示,该对象设置为请求的主体。 Content-Type
编码请求的 HTTP header 字段设置为 application/json
.
Alamofire reference
关于ios - Alamofire - 错误的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52160240/