我正在使用Alamofire.upload
将图片作为.POST
多部分上传到我的服务器。但我的服务器始终只将参数作为查询字符串获取,并仅将multipart用于文件数据。所以在我的请求中我还需要将一些参数放到URL中,但似乎Alamofire.upload
没有带参数参数的变体。
Alamofire.upload(
.POST,
"https://httpbin.org/post?user=\(userId)&photo=\(photoTitle)",
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: unicornImageURL, name: "unicorn")
},
encodingCompletion: nil
)
现在我只是自己把所有参数直接形成请求字符串:"https://httpbin.org/post?user=\(userId)&photo=\(photoTitle)"
。
有没有更好的方法将查询参数传递给Alamofire.upload
?
答案 0 :(得分:1)
可以做得更好的是Alamofire.ParameterEncoding
,但需要对请求进行一些解决。
var req: NSMutableURLRequest?
(req!, _) = Alamofire.ParameterEncoding.URL.encode(
NSURLRequest(URL: NSURL(string: "https://httpbin.org")!),
parameters: ["user": userId, "photo": photoTitle]
)
Alamofire.upload(
.POST,
req!.URLString,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: unicornImageURL, name: "unicorn")
},
encodingCompletion: nil
)