7

Ho notato di recente, che il mio codice, che utilizza AFNetworking (ultima versione dal ramo principale) ha smesso di funzionare correttamente in iOS 6. Ecco il mio codice:AFNetworking smesso di funzionare sotto iOS 6

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

dove httpClient è una variabile di classe.

Avanti, sto creando una richiesta:

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

Tutte le altre richieste sono costruite in modo simile. La prima operazione di accodamento funziona bene, posso entrare nel blocco del gestore di successo. Tuttavia, le chiamate successive ad altre richieste vengono completate con il gestore errori e l'errore request timeout, indipendentemente dal valore di timeout scelto.

Ho fatto le stesse chiamate usando semplicemente NSURLConnection, scrivendo un sacco di codice :), con successo, le richieste sono state elaborate correttamente.

Sono passato al dispositivo iOS 5 e il codice sopra funziona correttamente.

Sono passato alla connessione 3G (iOS 6) e il codice sopra funziona.

Sembra che ho questo problema solo su connessioni WiFi (ad eccezione del caso in cui io sono nella stessa sottorete con il mio assistente REST.)

Ogni pensiero su questo?

Grazie in anticipo.

+0

Stessa cosa sta succedendo qui. Potrei farlo funzionare codificando la richiesta manualmente ma usando ancora l'AF..RequestOperation. AFHTTPClient ha funzionato sul mio wifi di casa ma non tramite il proxy della mia uni. –

risposta

2

Sembra che sia stato pubblicato un problema sul github di AFNetworking e trovato la soluzione da soli :)!

Sembra che iOS 6 cambi qualcosa all'implementazione TCP o qualcosa del genere. Ho spostato il server su hosting di terze parti e ora funziona.

Per i futuri lettori, è possibile trovare il problema here.

Problemi correlati