Reputation: 130
Hello i am new to swift4 and trying to call multipart form data request by alamofire library in swift4 language? here below is my code
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
}
})
}
Upvotes: 0
Views: 3052
Reputation: 130
I have solved my issue it was too silly and small thing that i was not doing but after adding allowLossyConversion: false to my string conversion just did the trick.
{
//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
}
})
}
Upvotes: 0
Reputation: 16416
If you are facing issue because you have not uploaded image data
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
}
}
})
}
Upvotes: 1