Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
638 views
in Technique[技术] by (71.8m points)

ios - Alamofire: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

I am trying to upload data through alamofire including images. But it returns

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

-- and my code is ,

    Alamofire.upload(multipartFormData: { (multipartFormData) in

            multipartFormData.append((userid?.data(using: String.Encoding.utf8))!, withName: "user_id")

            multipartFormData.append((self.addUserBtnTag?.description.data(using: String.Encoding.utf8))!, withName: "slot")
}, to: urlString, method: .post, encodingCompletion: { (result) in
 switch result {
            case .success(let upload, _, _):

                upload.responseJSON { response in

                    print(response.result)
                    print("Response : ", response)

                    if response.result.isSuccess
                    {
                        let JSON = response.result.value as? NSDictionary

                        print("EditJSON : ", JSON!)
                    }
                }
            case .failure(let encodingError):
                print(encodingError)
            }
        })

But actually I am passing more than ten parameters through alamofire.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Just change from responseJSON to responseString

Alamofire.upload(multipartFormData: { (multipartFormData) in

            multipartFormData.append((userid?.data(using: String.Encoding.utf8))!, withName: "user_id")

            multipartFormData.append((self.addUserBtnTag?.description.data(using: String.Encoding.utf8))!, withName: "slot")
}, to: urlString, method: .post, encodingCompletion: { (result) in
 switch result {
            case .success(let upload, _, _):

                upload.responseString { response in

                    print(response.result)
                    print("Response : ", response)

                    if response.result.isSuccess
                    {
                        let JSON = response.result.value as? NSDictionary

                        print("EditJSON : ", JSON!)
                    }
                }
            case .failure(let encodingError):
                print(encodingError)
            }

        })

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...