代码之家  ›  专栏  ›  技术社区  ›  Angel F Syrus patel jigar

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

  •  -1
  • Angel F Syrus patel jigar  · 技术社区  · 8 年前

    我正在尝试通过alamofire上传数据,包括图片。但它又回来了

    responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

    -- 我的密码是,

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

    但实际上,我正在通过alamofire传递10多个参数。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Enea Dume    8 年前

    只是改变 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)
                }
    
            })
    
        2
  •  2
  •   Varsha Parmar    8 年前

    尝试使用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)
        }
        )