当前位置:  开发笔记 > 前端 > 正文

使用Alamofire发布数据时出现SerializationFailure错误

如何解决《使用Alamofire发布数据时出现SerializationFailure错误》经验,为你挑选了1个好方法。

我正在尝试使用Alamofire将一些文本数据和图像保存到服务器,但我收到以下错误:

FAILURE:responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain = NSCocoaErrorDomain Code = 3840"字符0周围的值无效."UserInfo = {NSDebugDescription =字符0周围的值无效}}))

我的代码:

internal func postContent(forApi Name:String, image:UIImage?, withData payload:[String: String], success: ((_ response:[String: AnyObject])->Void)?, failure: ((Error)->Void)?) {
    //create Alamofire request
    //if everything was fine call success block with people array passed into it
    //if failure occurred, call failure block with error.
    if(isConnectedToNetwork()){
        let url = SharedConstants.baseURL+Name
        print("url "+SharedConstants.baseURL+Name)

        Alamofire.upload(multipartFormData: { (multipartFormData) in
            if let img = image {
                multipartFormData.append(UIImageJPEGRepresentation(img, 0.5)!, withName: "photo_path", fileName: "swift_file.jpeg", mimeType: "image/jpeg")
            }

            for (key, value) in payload {
                multipartFormData.append(value.data(using: .utf8)!, withName: key)
            }
        }, to: url, method: .post , headers:nil, encodingCompletion: { (result) in
            switch result {
            case .success(let upload, _, _):

                upload.responseJSON(completionHandler: { (response) in
                    print(response.request)  // original URL request
                    print(response.response) // URL response
                    print(response.data)     // server data
                    print(response.result)   // result of response serialization

                    if let JSON = response.result.value {
                        print(JSON)
                        success!(JSON as! [String: AnyObject])
                    }
                    else{
                        failure!(ErrorType.noRecordFound)
                    }
                })
            case .failure(let error):
                print(error)
            }
        })
    }
    else{
        failure!(ErrorType.internetNotWorking)
    }
}

提前致谢



1> pankaj..:

iOS代码是正确的,后端代码存在问题.json没有正确形成.我纠正了后端的json形态,它开始工作正常.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有