我最近注意到,我的代码使用 AFNetworking(来自 master 分支的最新版本)在 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];
所有其他请求的构造类似。第一个入队操作运行良好,我可以进入成功处理程序块。request timeout
但是,无论我选择的超时值有多大,对其他请求的下一次调用都会以失败处理程序和错误完成。
我使用 plain 完成了相同的调用NSURLConnection
,编写了大量代码:),成功地处理了请求。
我切换到 iOS 5 设备,上面的代码运行良好。
我切换到 3G 连接(iOS 6),上面的代码有效。
似乎我只在 WiFi 连接上遇到这个问题(除了我与我的 REST 服务器在同一个子网中的情况。)
对此有什么想法吗?
先感谢您。