私は最近、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];
他のすべてのリクエストも同様に作成されます。キューに入れられた最初の操作はうまく機能し、成功ハンドラー ブロックに入ることができます。request timeout
ただし、他のリクエストへの次の呼び出しは、選択したタイムアウト値に関係なく、失敗ハンドラーとエラーで終了します。
私はplainを使って同じ呼び出しを行いNSURLConnection
、大量のコードを書きました:)、成功すると、リクエストは適切に処理されました。
iOS 5 デバイスに切り替えましたが、上記のコードは正常に動作します。
3G 接続 (iOS 6) に切り替えたところ、上記のコードが機能しました。
WiFi接続でのみこの問題が発生しているようです(RESTサーバーと同じサブネットにいる場合を除く)。
これについて何か考えはありますか?
前もって感謝します。