使用 Alamofire 的多部分 POST
Posted
技术标签:
【中文标题】使用 Alamofire 的多部分 POST【英文标题】:Multipart POST with Alamofire 【发布时间】:2014-11-05 23:21:21 【问题描述】:我想在 Swift 中使用 Alamofire 向我的 Rails 服务器发出请求。 我有一个简单的对象,我想对其进行序列化,以及一些我想作为多部分编码数据附加的图像。
在我的 Rails 方面,它就像一个请求一样简单:
post :create, object: parameters, files: ['file1', 'file2'], format: :json
使用 Alamofire 最优雅的方法是什么?
【问题讨论】:
【参考方案1】:我还没有深入研究 Alamo Fire,但阅读文档让我相信 Alamo Fire 目前不支持此功能。特别是标题“我何时应该使用 AFNetworking”下的文档末尾指出:
将 AFNetworking 用于以下任何一项:
UIKit 扩展,比如异步加载图片到 UIImageView TLS 验证,使用 AFSecurityManager 需要 NSOperation 或 NSURLConnection 的情况,使用 AFURLConnectionOperation 网络可达性监控,使用 AFNetworkReachabilityManager 使用 AFHTTPRequestSerializer 构建多部分 HTTP 请求【讨论】:
感谢 Brandon,我为此通话导入了 AFNetworking,它似乎可以正常工作。【参考方案2】:我不知道你在问什么
在 Swift 3 中
但为了实现 MultiPartFormdata 以下代码可能很有用
Alamofire.upload(multipartFormData: (multipartFormData) in
multipartFormData.append(UIImageJPEGRepresentation(self.Imgprofile.image!, 1)!, withName: "Prescription", fileName: "Profile_Image.jpeg", mimeType: "image/jpeg")
, to:"Your URL Here")
(result) in
switch result
case .success(let upload, _, _):
print(result)
upload.uploadProgress(closure: (progress) in
print(progress)
)
upload.responseJSON response in
//print response.result
print(response);
case .failure(let encodingError):
print(encodingError);
这是最新的工作语法
【讨论】:
以上是关于使用 Alamofire 的多部分 POST的主要内容,如果未能解决你的问题,请参考以下文章