首页 > 解决方案 > 记录alamofire上传图片请求和响应

问题描述

我知道这个问题有很多,但我找不到与上传相关的确切问题。我正在为我的 HTTP 调用使用alamofire。我正在尝试将图像上传到 Amazon S3 并收到错误,想要记录请求和响应以查看究竟是什么问题。

除了 Alamofire.upload,我所有的请求都在记录。我为请求添加了一个扩展,并且 Aramofire.request 正在记录,现在我的问题是也记录 Alamofire.upload。

例如,我正在尝试为以下示例记录请求和响应。

Alamofire.upload(multipartFormData: { (multipartFormData) in
    for (key, value) in params {
        multipartFormData.append(value.data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: key)
    }
    if image != nil {
        if let imgData = UIImageJPEGRepresentation(image!, 0.8) {
            multipartFormData.append(imgData, withName: "file", fileName: "file.jpg", mimeType: "image/jpeg")
        }
    }
   }, to: "amazon.s3.URL")

标签: swiftamazon-s3alamofire

解决方案


在深入研究 SessionManager 类后,我发现了如何记录上传请求和响应的方式。我覆盖了上传功能。

这是我的例子

class AlamofireManager: SessionManager {

    override func upload(_ data: Data, with urlRequest: URLRequestConvertible) -> UploadRequest {
        let request = super.upload(data, with: urlRequest)

        print("Request: \(request.debugDescription)")

        print("Response: \(request.response.data)")

        return request
    }
}

推荐阅读