为啥我收到此错误,responseSerializationFailed?

Posted

技术标签:

【中文标题】为啥我收到此错误,responseSerializationFailed?【英文标题】:why I am getting this error , responseSerializationFailed?为什么我收到此错误,responseSerializationFailed? 【发布时间】:2018-05-13 00:46:57 【问题描述】:

这是我的代码

        Alamofire.request(URL, method: requestType, parameters: param, encoding: URLEncoding.default, headers: headers).responseJSON  (response:DataResponse<Any>) in


        switch(response.result) 
        case .success(_):
            if response.result.value != nil


                completion(response.result.value!)
            
            break

        case .failure(_):
            print(response.result.error!)
            failure(response.result.error!)
            break

        
    

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(错误域=NSCocoaErrorDomain Code=3840 "字符 0 周围的值无效。" UserInfo=NSDebugDescription=字符 0 周围的值无效。)) 无法将“Alamofire.AFError”(0x100969000)类型的值转换为“Swift.Array<__objc.nsdictionary>”(0x174094340)。 2017-11-29 16:01:09.744776 WTV_GO[2333:1690232] 无法将“Alamofire.AFError”(0x100969000)类型的值转换为“Swift.Array<__objc.nsdictionary>”(0x174094340)。

将firebase令牌和其他参数放入服务器时出现此错误,但相同的参数通过邮递员工作正常,有什么解决办法吗? 谢谢!

【问题讨论】:

在此处发布您的代码 @JitendraModi 看到我的 requestType 示例被放了,你能为这种类型的错误提供任何解决方案吗? 你试过把encoding: URLEncoding.default改成encoding: JSONEncoding.default吗? 您收到无法解析的无效响应。检查您的回复并使用 jsonlint.com 之类的内容进行验证 @JitendraModi 使用encoding: JSONEncoding.default 仍然遇到同样的错误 【参考方案1】:

终于解决了这个问题。我已将代码从 encoding: URLEncoding.default 更改为 encoding: URLEncoding.queryString

【讨论】:

【参考方案2】:

根据您的错误,您似乎没有处理错误。 请看下面的示例代码来处理success响应结果和error响应结果。

    Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil) .responseJSON  response in
                    switch response.result 
                    case .success(_):
                        print(response)
                        // Do your stuff here
                    case .failure(_):

                        print("Request failed with error: \(response.result.error ?? "" as! Error)")
                        //handle error here
                    

【讨论】:

我正在实现所有的错误处理代码,你可以看到上面放了requestType的代码。 是的,您现在已经添加了有问题的代码。会看起来

以上是关于为啥我收到此错误,responseSerializationFailed?的主要内容,如果未能解决你的问题,请参考以下文章

无效的字典 0 )。为啥我收到此错误?

为啥我会收到此错误:“不支持此功能(数字商品)。”?

为啥我收到此代码的错误? [复制]

为啥我在 django 教程中收到此模板错误?

知道为啥我会收到此错误吗?

为啥我在尝试访问此 WordPress 网站时收到此 403 Forbidden 错误?为啥它无法读取 .htaccess 文件?