swift - 记录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")
解决方案
在深入研究 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
}
}
推荐阅读
- c# - 如何在桌面上获取光标坐标,而不是在使用 C# 的表单上
- c# - 数据序列化/反序列化到/从文件
- r - 如何在 R 中的每个循环迭代结束时创建新变量
- node.js - Firebase CloudScheduler GCLOUD_PROJECT 错误
- node.js - 为什么 Jenkins 会在工作空间之外挂载一个临时卷?
- javascript - Coldfusion:选中复选框时,我需要更改结构值
- javascript - .map 异步回调和事件循环
- html - 使谷歌地图响应和调整大小
- python - 如何对列表使用两个条件?
- python - numpy.histogramdd: ValueError: bins 的维度必须等于样本 x 的维度