ios - AlamoFire 发送零
问题描述
我正在通过 Alamofire 发送 JSON 请求,但是该函数发送 nil。即使我已经验证所有项目都可以正常工作。
辅助功能:
func requestServer(_ method: HTTPMethod,_ path: String,_ body: [String : Any]?,_ encoding: ParameterEncoding,_ headers: [String : Any]?,_ completionHandler: @escaping (JSON) -> Void){
let url = baseURL?.appendingPathComponent(path)
refreshTokenIfNeed {
Alamofire.request(url!, method: method, parameters: body, encoding: encoding, headers: nil).responseJSON{ (response) in
switch response.result {
case .success(let value):
let jsonData = JSON(value)
completionHandler(jsonData)
break
case .failure:
completionHandler(nil)
break
}
}
}
}
函数发送 Nil:
func pickOrder(orderId: Int, completionHandler: @escaping (JSON) -> Void) {
let path = "api/driver/order/pick/"
let header: [String: Any] = ["Authorization": "Bearer " + self.accessToken]
let body: [String: Any] = [
"order_id":"\(orderId)"
]
print("header", header, "body", body)
requestServer(.post, path, body, URLEncoding(), header, completionHandler)
}
任何见解都会有所帮助!
解决方案
传入JSONEncoding.default
方法以发送给定的 JSON:
requestServer(.post, path, body, JSONEncoding.default, header, completionHandler)
并在您的标题部分传递标题值:
Alamofire.request(url!, method: method, parameters: body, encoding: encoding, headers: headers)
并检查错误。打印print(response.error?.localizedDescription)
在.failure
推荐阅读
- python - SSL:CERTIFICATE_VERIFY_FAILED 尝试使用 django 验证 reCAPTCHA
- mysql - 左连接未知列
- java - Derby Db NoClassDefFoundError 在 Netbeans 之外不起作用
- python - typeerror:'float'对象在python中不可迭代
- php - 减少mysql中的库存项目
- laravel - laravel6.0如何插入多条数据
- javascript - 将 url 从 python 传递到 Flask 中的 JavaScript
- python - 引导程序不适用于 django send_mail
- openedge - 带有图标和标签的按钮
- signalr - 客户端接收数据作为 [object object]