2012-11-07 11 views
9

Sto utilizzando il metodo HTTP Post e avvio di una richiesta sincrona. [NSURLConnection sendSynchronousRequest: ..]HTTP Post - Timeout - Richiesta multipla avviata nell'intervallo di timeout

Per le richieste HTTP POST, il timeout predefinito si verifica a 75 secondi come discusso in molti thread.

Ma durante questo periodo di timeout di 75 secondi, vengono avviate più richieste di servizi Web per la stessa richiesta generata con tutti gli stessi parametri.

Per favore fateci sapere Che cosa causa l'avvio di queste richieste multiple? Ciò è dovuto al POST HTTP in generale o alla richiesta sincrona?

@iOS codice di esempio

[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[request setHTTPBody:body]; 
[request addValue:[NSString stringWithFormat:@"%d", body.length] forHTTPHeaderField: @"Content-Length"]; 

[[NSURLCache sharedURLCache] setDiskCapacity:0]; 
[[NSURLCache sharedURLCache] setMemoryCapacity:0]; 

NSURLResponse *response; 
response = nil; 

urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];    
if(urlData) 
{ 
     NSString *responseString = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding]; 
     [self parseStringInformation:responseString infoDict:informationDictionary]; 
     //NSLog(@"%@",responseString); 
} 
+0

Potrebbe eliminare una parte campione della sorgente, potrebbe esserci qualcosa che non va. Non ho mai avuto un simile comportamento. – iOS

+0

@iOS Aggiunto codice di esempio sopra – Subi

+0

Interessante, vorrei verificare e registrare tutti gli eventi che saranno visibili durante il trasferimento asincrono, potrebbe essere il sistema ha alcune ragioni per i reindirizzamenti che portano a più richieste.Solo per il debug ti consiglierei di usare il post di asynchron e inserire tutti gli eventi e registrarli con 'NSLog()' per vedere cosa succede dal lato del sistema. Afaik non ci sono modi per registrare questi eventi in modalità sincrona. Spero che questo aiuti, altrimenti potrei controllare il trasferimento dal mio sistema. – iOS

risposta

1

Senza richiesta-risposta del server logs ci sono diverse possibilità.

Errore del programmatore: Avete già affrontato tutte le situazioni di tipo "gotchya"?

Risposte Web Server : Senza i registri dei server Web (o il codice per il servizio il POST a) è difficile dire ...

API errore: Hai trovato qualche caso d'angolo che sta causando effetti collaterali indesiderati. Forse Apple ha un bug tracker o forum di supporto per gli sviluppatori?

Problemi correlati