最近我注意到,我的代码使用了AFNetworking(从主分支获取的最新版本),在iOS 6上无法正常工作。
这是我的代码:
httpClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:baseURL]];
httpClient.operationQueue.maxConcurrentOperationCount = 1;
这里httpClient
是一个类变量。
接下来,我要创建一个请求:
NSMutableURLRequest *signInRequest = [httpClient requestWithMethod:@"POST" path:@"/user/register" parameters:dataToSend];
signInRequest.timeoutInterval = 15.0;
signInRequest.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;
AFJSONRequestOperation *signInOperation = [AFJSONRequestOperation JSONRequestOperationWithRequest:signInRequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
// Blah
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)
{
// Blah
}];
[httpClient enqueueHTTPRequestOperation:signInOperation];
所有其他请求的构造方式类似。第一个排队操作很好,我可以进入成功处理程序块。然而,对其他请求的下一次调用会以失败处理程序和
请求超时
错误完成,无论我选择多大的超时值。我已经使用纯粹的
NSURLConnection
进行了相同的调用,编写了大量代码,成功地处理了请求。我切换到iOS 5设备,上述代码运行良好。
我切换到3G连接(iOS 6),上述代码也可正常工作。
看起来我只在WiFi连接上有这个问题(除非我在与我的REST服务器位于同一子网的情况下)。
对此有什么想法吗?
谢谢你提前。