ant*_*ope 7 networking nsurlconnection nsmutableurlrequest afnetworking ios6
我最近注意到,我的代码,使用AFNetworking(主分支的最新版本)在iOS 6下停止正常工作.这是我的代码:
httpClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:baseURL]];
httpClient.operationQueue.maxConcurrentOperationCount = 1;
Run Code Online (Sandbox Code Playgroud)
哪里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];
Run Code Online (Sandbox Code Playgroud)
所有其他请求的构造类似.第一个排队的操作运行良好,我可以进入成功处理程序块.但是,request timeout无论我选择的超时值有多大,下一次对其他请求的调用都会以失败处理程序和错误结束.
我使用plain进行了相同的调用NSURLConnection,编写了大量的代码:),成功地处理了请求.
我切换到iOS 5设备,上面的代码工作正常.
我切换到3G连接(iOS 6),上面的代码工作.
似乎我只在WiFi连接上遇到此问题(除了我与我的REST服务器在同一子网中的情况.)
有什么想法吗?
先感谢您.
看来您也在 AFNetworking 的 github 上发布了一个问题并自己找到了解决方案:)!
看起来 iOS 6 改变了 TCP 实现之类的东西。我将服务器移至第三方托管,现在可以正常工作。
对于未来的读者,可以在这里找到该问题。