简体   繁体   English

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

[英]Alamofire: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

I am trying to upload data through alamofire including images. 我正在尝试通过alamofire上传数据,包括图片。 But it returns 但它返回

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength) 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. 但是实际上我通过alamofire传递了十多个参数。

Just change from responseJSON to responseString 只需从responseJSON更改为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)
            }

        })

Try this for uploading image with parameter with alamofire 尝试使用alamofire参数上传图片

 Alamofire.upload(multipartFormData: { (multipartFormData) in

        let imageData: NSData? = UIImageJPEGRepresentation(image, 0.5) as NSData?
        if imageData != nil {

            multipartFormData.append(imageData! as Data, withName: strImageKey, fileName: "imagep.jpeg", mimeType: "imagep/jpeg")

            for (key, value) in dictParams {
                let data = "\(value)".data(using: .utf8)
                multipartFormData.append(data! as Data, withName: key)
            }
        }

    }, with: requestName,encodingCompletion: { encodingResult in
        switch encodingResult {
        case .success(let upload, _, _):

            upload.responseJSON { response in
                log.debug("Image(s) Uploaded successfully:\(response)")
                //Networking.handleApiResponse(response)
            }
        case .failure(let encodingError):
            log.debug("encodingError:\(encodingError)")
            // Networking.handleApiResponse(response)

            Util.showAlertWithMessage(msgSorry, title:"Error")
        }
        completionHandler!(encodingResult)
    }
    )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 失败:responseSerializationFailed(原因:Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength) - FAILURE: responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength) Alamofire - Alamofire.AFError.responseSerializationFailed - Xcode 8 - Alamofire - Alamofire.AFError.responseSerializationFailed - Xcode 8 Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(错误域=NSCocoaErrorDomain 代码=3840 - Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 Alamofire-responseSerializationFailed - Alamofire - responseSerializationFailed Alamofire:失败响应序列化失败 - Alamofire: FAILURE responseSerializationFailed 错误:可选(Alamofire.AFError.invalidURL(“”)) - Error: Optional(Alamofire.AFError.invalidURL(“”)) 使用Flickr API时Alamofire AFError - Alamofire AFError when work with Flickr API 操作无法完成。 (Alamofire.AFError 错误 9。) - The operation could not complete. (Alamofire.AFError error 9.) Alamofire+Combine:如何从 AFError 中获取自定义错误类型 - Alamofire+Combine: how to get custom error type out of AFError “结果”类型的 Alamofire 值<any, aferror> ' 没有成员 'isSuccess' (Swift 5)</any,> - Alamofire Value of type 'Result<Any, AFError>' has no member 'isSuccess' (Swift 5)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM