AFNetworking -1017错误

时间:2015-10-22 18:19:57

标签: ios objective-c afnetworking nsurlconnection nsurlsession

我正在研究iOS应用程序并面临一个奇怪的问题。我正在使用AFNetworking框架与服务器进行通信(HTTPS通信)。我正在使用" getStudentData"从服务器检索学生数据。 Web服务API。这是邮寄请求。它适用于除一个用户ID之外的所有用户ID。当我们有超过450名学生的数据时,它会失败。以下是错误详情

Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo=0x7bf9c7d0 {NSErrorFailingURLStringKey=https://www.fdmobileservices.com/mAccountsWeb/services/speedpass/rpc, _kCFStreamErrorCodeKey=-1, NSErrorFailingURLKey=https://www.fdmobileservices.com/mAccountsWeb/services/speedpass/rpc, NSLocalizedDescription=cannot parse response, _kCFStreamErrorDomainKey=4,    NSUnderlyingError=0x7bf9a380 "cannot parse response"}

根据错误描述,它告诉"无法解析",所以我认为这可能是由于服务器正在返回" nil"或JSON格式以外的一些数据。

但我无法追踪它,因为从应用程序方面它直接进入下面的方法,

 - (void)connection:(NSURLConnection __unused *)connection
didFailWithError:(NSError *)error

从应用程序端到跟踪根本原因有什么办法吗?除了一个用户登录之外,此方法适用于其他用户登录。

我尝试使用Web客户端通过相同的用户登录访问此服务,它运行良好并返回450名学生的数据。我认为由于某种原因,iOS网络层拒绝这一点。我想知道。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以看到herekCFURLErrorCannotParseResponse = -1017。所以可能这就是说参数有问题。

如果您正在使用AFNetworking 2.0,我建议您使用多个断点深度调试响应流。 特别是尝试在方法开头的AFURLResponseSerialization.m设置断点:

- (id)responseObjectForResponse:(NSURLResponse *)response
                           data:(NSData *)data
                          error:(NSError *__autoreleasing *)error;

在方法内部,如果以下条件为真,则可能存在错误(但您可以进入validateResponse:data:error:以更好地理解错误):

   if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error])

如果上述条件为假,您可以检查生成的responseString

NSString *responseString = [[NSString alloc] initWithData:data encoding:stringEncoding];

如果您期待json数据,请检查responseString不是nildata数据是否有效,也可以是stringEncoding。 同时确保您收到的contentType是您期望的内容类型。

相关问题