首页 > 解决方案 > 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)
    }

在此处输入图像描述

任何见解都会有所帮助!

标签: iosswiftapirequestalamofire

解决方案


传入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


推荐阅读