Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(错误域名= NSCocoaErrorDomain代码= 3840

问题描述 投票:1回答:2

我正在研究swift项目并使用Alamofire调用webservice。但是,在调用post方法时,我遇到了以下错误。

Header file :

let accessTokenHeaderFile = [
    "Accept": "application/json",
    "Content-Type" :"application/json",
    "X-TOKEN" : UtilityClass.sharedInstance.accessTokenString
]

        Alamofire.request(urlString, method: .post, parameters: params as? [String:Any], encoding: JSONEncoding.default, headers: accessTokenHeaderFile).responseJSON { response in
          requestVC.removeLoader()
            switch (response.result) {
            case .success:
                if response.result.value != nil{
                    completionHandler (response.result.value)
                }
                break
            case .failure(let error):
                failureHandler (error as NSError?)
                break
            }
        }

错误是

FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

任何人都可以建议我,如何解决这个问题,我尝试谷歌搜索,但无论我发现什么答案都没有帮助我。

ios iphone swift xcode alamofire
2个回答
0
投票

您的回复不是有效的json,因此您收到此错误。请检查response.response?.statusCode以查看服务器返回的内容。如果你想看到实际的响应尝试使用responseStringresponseData方法而不是responseJSON

EG

Alamofire.request(urlString, method: .post, parameters: params as? [String:Any], encoding: JSONEncoding.default, headers: accessTokenHeaderFile). responseData {

你可以找到更多response methods here


0
投票

3840的错误说服务器的响应不是有效的JSON字符串。所以你可以检查你的参数键值可能是错误的赋值因为类似的responseString而不是responseJSON。

© www.soinside.com 2019 - 2024. All rights reserved.