发送带有参数的 Alamofire 请求以及 HTTP 正文中的图像
Posted
技术标签:
【中文标题】发送带有参数的 Alamofire 请求以及 HTTP 正文中的图像【英文标题】:Send Alamofire request with parameters and also image in HTTP body 【发布时间】:2016-10-17 17:26:45 【问题描述】:我有一个 Alamofire 请求
let parameters = ["key1":value1, "key2":value2, "keyn":valueN] as [String: AnyObject]
Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON, headers: ["Authorization": auth_token]).validate().responseObject()
// etc
但是我需要在 HTTP 请求正文的“image”键下添加 jpg 图像,我该怎么做?我很难找到一个简单的 Alamofire 解决方案。我需要保留当前参数,但还要在请求正文中连同 POST 一起发送图像
【问题讨论】:
我强烈建议不要在正文中上传图片,即使是 base64。最好将图像发送到存储桶,然后向上发送图像的 url 位置。否则,您将无需在图像上传时烧掉大量内存 【参考方案1】:如何将图像转换为base64?
if let imageData = UIImageJPEGRepresentation(selectedImage, 0.30)
let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
*我也在压缩这里的质量。
【讨论】:
我正在使用的 API 特别不需要 Base64,而是 HTTP 正文中的图像本身。以前从未上传过照片,所以这对我来说都是全新的 @TommyK 你找到怎么做了吗.. 我也需要将我的 json 和图像一起发送到 http 正文中作为多部分发送以上是关于发送带有参数的 Alamofire 请求以及 HTTP 正文中的图像的主要内容,如果未能解决你的问题,请参考以下文章
使用 alamofire 将带有 JSON 对象和查询参数的 POST 请求发送到 REST Web 服务
带有 Swift 3 的 Alamofire 4.3,POST 请求不适用于 URL 参数
如何在 Alamofire 4.0 中仅使用参数和正文在 swift 中使用 POST 方法发送请求?
带有 CRUD/Rest 的 Alamofire POST 参数