![](/img/trans.png)
[英]Handling multipart/form-data request sent by Alamofire in Swift, in Hapijs backend
[英]multipart form data request in alamofire in swift4?
您好,我是swift4的新手,並嘗試用swift4語言調用alamofire庫的多部分表單數據請求嗎? 這是我的代碼
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
}
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.