调用API时遇到一个非常奇怪的问题,
当我第一次调用API时,我遇到了错误,
失败:responseSerializationFailed(原因:Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(错误:Error Domain = NSCocoaErrorDomain Code = 3840“字符0周围的无效值。” UserInfo = {NSDebugDescription =字符0周围的无效值)))>
在故障块中,我再次调用相同的API,并且得到了正确的响应。
我使用Alamofire进行API调用。
我非常努力地找出解决方案,但是还没有运气。
下面是我的代码,
Alamofire.request(URL(string: baseURL + url.rawValue)!, method: method, parameters: param, encoding: encoding, headers: header).responseJSON { (response) -> Void in
UIApplication.shared.isNetworkActivityIndicatorVisible = false
print(response)
let responseJson = JSON(response.result.value as Any)
if let statusCode = response.response?.statusCode
{
print(statusCode)
let status = accepTableStatusCodes.contains(statusCode)
switch status {
case true:
success(responseJson)
break
default:
if let message = responseJson.dictionaryObject?[ApiKeys.message] as? String{
if message != ApiKeys.Unauthorized {
DELEGATE.window!.rootViewController?.view.showToast(toastMessage: message, duration: 0.3)
}
}
failure(responseJson)
break
}
} else {
print("Something went wrong")
}
}
我尝试将responseJSON更改为responseString。什么都没用。
在标头中,我传递的是以下值,
header = [ApiKeys.Authorization : "Bearer \(user.token ?? "")", "Accept" : "application/json","Content-Type": "application/json"]
我不明白为什么它在第一个调用中引发错误,而同一调用在第二个调用中给出了正确的响应。在我的项目中,我已经集成了将近10多个API,并且在每个API中都发生了同样的事情。 真是奇怪又奇怪的行为! :(