发送带有参数的 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 参数

如何在 Swift 中使用 Alamofire 上传带有 JSON 参数的图像?

如何使用 Alamofire 发送带有压缩内容的 HTTP POST 请求?