Search code examples
iosiphoneswift4alamofire

multipart form data request in alamofire in swift4?


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
            }


        })
}

Solution

  • 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
            }
        })
    }