记录alamofire上传图片请求和响应

Posted

技术标签:

【中文标题】记录alamofire上传图片请求和响应【英文标题】:Log alamofire upload image request and response 【发布时间】:2019-08-27 06:45:39 【问题描述】:

我知道这个问题有很多,但我找不到与上传相关的确切问题。我使用alamofire 进行HTTP 调用。 我正在尝试将图像上传到 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")

【问题讨论】:

【参考方案1】:

在深入研究 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
    

【讨论】:

【参考方案2】:

你也可以使用这个 pod https://github.com/konkab/AlamofireNetworkActivityLogger 并且你可以在 applicationDidLaunch.. 中调用它,它会记录一切非常好。

【讨论】:

以上是关于记录alamofire上传图片请求和响应的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Alamofire (post) 上传图片?

Alamofire +ObjectMapper模型: 上传单张图片,上传多张图片。

使用 multipartFormData 上传图像时 Alamofire 请求正文为零

Swift UI 和 Alamofire 图片上传

alamofire上传带json参数的图片

使用 Alamofire 上传图片时崩溃