Ios swift4中alamofire中的多部分表单数据请求?
您好,我是swift4新手,尝试用swift4语言调用alamofire库的多部分表单数据请求?下面是我的代码Ios swift4中alamofire中的多部分表单数据请求?,ios,iphone,swift4,alamofire,Ios,Iphone,Swift4,Alamofire,您好,我是swift4新手,尝试用swift4语言调用alamofire库的多部分表单数据请求?下面是我的代码 Alamofire.upload(multipartFormData: { multipartFormData in multipartFormData.append("1422".data(using: String.Encoding.utf8)!, withName: "u_id") multipartFormData.append(
Alamofire.upload(multipartFormData: { multipartFormData in
multipartFormData.append("1422".data(using: String.Encoding.utf8)!, withName: "u_id")
multipartFormData.append("How???".data(using: String.Encoding.utf8)!, withName: "firstname")
multipartFormData.append("We are woking on it!!".data(using: String.Encoding.utf8)!, withName: "description")
}, to: "URL_TOcall", encodingCompletion: { result in
print("result = \(result)")
switch result {
case .success(request: let request, streamingFromDisk: false, streamFileURL: nil):
//Success code
break
case .failure:
print("failed api calling")
break
case .success(let request, true, _):
//Code here
break
case .success(let request, _, _):
// Code here
break
}
})
}
如果您因未上传图像数据而面临问题
Alamofire.upload(multipartFormData: { multipartFormData in
// MISSING THIS LINE
if let imageData = UIImagePNGRepresentation(yourimage) {
multipartFormData.append(imageData, withName: "", fileName: "filename\(Date().timeIntervalSince1970)")
}
multipartFormData.append("1422".data(using: String.Encoding.utf8)!, withName: "u_id")
multipartFormData.append("How???".data(using: String.Encoding.utf8)!, withName: "firstname")
multipartFormData.append("We are woking on it!!".data(using: String.Encoding.utf8)!, withName: "description")
}, to: "URL_TOcall", encodingCompletion: { result in
print("result = \(result)")
switch result {
case .success(let request, _, _):
print(request)
request.responseJSON(completionHandler: { (resonse) in
print(resonse)
})
case .failure( let error):
print(error)
break
}
}
})
}
我已经解决了我的问题,我没有做的事情太傻太小了,但是在我的字符串转换中添加了allowLossyConversion:false之后,我的转换就成功了
{
//corrected indentation for code
Alamofire.upload(multipartFormData: { multipartFormData in
multipartFormData.append("1422".data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: "u_id")
multipartFormData.append("How???".data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: "firstname")
multipartFormData.append("We are woking on it!!".data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: "description")
}, to: "URL_TOcall", encodingCompletion: { result in
print("result = \(result)")
switch result {
case .success(request: let request, streamingFromDisk: false, streamFileURL: nil):
//Success code
break
case .failure:
print("failed api calling")
break
case .success(let request, true, _):
//Code here
break
case .success(let request, _, _):
// Code here
break
}
})
}
你有什么问题?@PrashantTukadiya我正在调用url及其in-post方法,Response是正确的,但我在mutablearraydata中发布的参数在服务器中没有得到更新。我在postman中尝试过,其工作正常,但使用此代码函数失败。您的post参数在http正文中或作为url中的查询字符串?@PrashantTukadiya在http正文中,但这意味着什么
allowLossyConversion:false
?