7

Vor kurzem habe ich bemerkt habe, dass mein Code, die AFNetworking (neueste Version von Master-Zweig) verwendet gestoppt richtig unter iOS arbeiten 6. Hier ist mein Code:AFNetworking gestoppt unter iOS arbeiten 6

httpClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:baseURL]]; 
httpClient.operationQueue.maxConcurrentOperationCount = 1; 

wo httpClient ist eine Klassenvariable.

Als nächstes Ich erstelle eine Anfrage:

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]; 

Alle anderen Anforderungen sind ähnlich aufgebaut. Die erste in die Warteschlange eingereihte Operation funktioniert gut, ich kann in den Erfolgs-Handler-Block gelangen. Die nächsten Aufrufe an andere Anforderungen werden jedoch mit dem Fehlerhandler und dem Fehler request timeout beendet, unabhängig davon, wie groß der von mir gewählte Zeitüberschreitungswert ist.

Ich habe die gleichen Anrufe mit einfachen NSURLConnection, schreiben eine Tonne Code :), mit Erfolg, Anforderungen wurden ordnungsgemäß verarbeitet.

Ich wechselte zu iOS 5 Gerät, und der Code oben funktioniert gut.

Ich wechselte zu 3G-Verbindung (iOS 6), und der Code oben funktioniert.

Es scheint, wie ich dieses Problem nur auf WiFi-Verbindungen (mit Ausnahme des Falles, wenn ich im gleichen Subnetz mit meinem REST-Server bin.)

Irgendwelche Gedanken dazu?

Vielen Dank im Voraus.

+0

Das gleiche passiert hier. Ich könnte es zum Funktionieren bringen, indem ich die Anfrage manuell kodiere, aber immer noch die AF..RequestOperation benutze. AFHTTPClient arbeitete an meinem WLAN zu Hause, aber nicht über meine Uni-Proxy. –

Antwort

2

Es scheint, dass Sie auch ein Problem auf AFNetworking Github gepostet und die Lösung selbst gefunden :)!

Es scheint wie iOS 6 etwas an TCP-Implementierung oder etwas ändert. Ich habe den Server auf ein Drittanbieter-Hosting umgestellt und es funktioniert jetzt.

Für zukünftige Leser kann das Problem here gefunden werden.