我正在研究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.}))
任何人都可以建议我,如何解决这个问题,我尝试谷歌搜索,但无论我发现什么答案都没有帮助我。
您的回复不是有效的json,因此您收到此错误。请检查response.response?.statusCode
以查看服务器返回的内容。如果你想看到实际的响应尝试使用responseString
或responseData
方法而不是responseJSON
EG
Alamofire.request(urlString, method: .post, parameters: params as? [String:Any], encoding: JSONEncoding.default, headers: accessTokenHeaderFile). responseData {
你可以找到更多response methods here
3840的错误说服务器的响应不是有效的JSON字符串。所以你可以检查你的参数键值可能是错误的赋值因为类似的responseString而不是responseJSON。