【发布时间】:2019-05-07 07:48:57
【问题描述】:
我需要像这个邮递员一样提出请求,但在 Alamofire 中
curl -X DELETE \
http://someUrl \
-H 'authorization: JWT someToken' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'postman-token: 0149ef1e-5d45-34ce-3344-4b658f01bd64' \
-d id=someId
我想应该是这样的:
let headers = ["Content-Type": "application/x-www-form-urlencoded", "Authorization": "JWT someToken"]
let params: [String: Any] = ["id": "someId"]
Alamofire.request("http://someUrl", method: .delete, parameters: params, headers: headers).validate().responseJSON { responseJSON in
switch responseJSON.result {
case .success( _):
let data = responseJSON.result.value!
print(data)
case .failure(let error):
print(error.localizedDescription)
}
}
如何检查我的请求是否有来自cUrl - -d id=someId 的类似选项
【问题讨论】:
-
let request = Alamofire.request("http://someUrl", method: .delete, parameters: params, headers: headers); request.validate().responseJSON{...}代替。打印request,也可以打印request.request.httpBody,看看你的情况下没有HTTPBody。 -
如果您使用
(method... encoding: JSONEncoding()...),您将看到-d选项,但使用 JSON 编码 (-d "{\"id\":\"someId\"}")。要使其正常工作,请使用Alamofire.request("http://someUrl", method: .delete, parameters: params, encoding: URLEncoding(destination: .httpBody), headers: headers)。