我想使用Alamo火多部分表单数据使用请求,例如我使用上传API
let profile = self.photoView.imageView?.image
let parameters : [String:String] = [
"homePageUrl": webURLField.text!,
"nickName": nickNameField.text!,
"selfIntro": introField.text!,
]
let uri = Constants.APIURL.changeProfile
let fileName = "\(nickNameField.text!).jpg"
Alamofire.upload(multipartFormData: { (multipartFormData) in
if let imageData = UIImageJPEGRepresentation(profile!, 1.0) {
multipartFormData.append(imageData, withName: "profile", fileName: fileName, mimeType: "image/jpg")
}
for ( key, value ) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: key)
}
}, usingThreshold: UInt64.init(), to: uri, method: .patch, headers: Constants.VyrlAPIConstants.getHeader(), encodingCompletion:
{
encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (progress) in
})
upload.responseString { response in
if ((response.response?.statusCode)! == 200){
self.navigationController?.popViewController(animated: true)
}
}
case .failure(let encodingError):
print(encodingError.localizedDescription)
}
})
此代码从服务器发送 400 响应
洛格群岛
补丁“http://blablabla.com:8080/users/profile”:
内容类型:多部分/表单数据;
boundary=alamofire.boundary.53a2e440bad1fabd X 设备:ios
X-APP 版本:1.0.0 接受语言:ko-kr 400
'http://blablabla.com:8080/users/profile'[0.0976 s]:
X-应用程序上下文:应用程序:dev 连接:关闭
传输编码:身份日期:2017 年 7 月 13 日星期四 01:57:41 GMT
服务器想要接收
http://blablabla.com:8080/users/profile?nickName=abcd&selfIntro=hi%20my%20name%20is..
服务器日志是..(成功200代码)
curl -X PATCH --header '内容类型:多部分/表单数据' --header
'接受:/' --header 'X-APP-版本:1.0.0' --header 'X-设备:ios'
--header '接受语言:ko-KR' {"type":"formData"} 'http://blablabla.com:8080/users/profile?nickName=abcd&selfIntro=hi%20my%20name%20is..'
当然,我想附上?昵称=abcd
使用多种形式的零件数据
如何使用alamofire代码?