/ / NSUR Richiesta di nuovo tentativo di connessione - iphone, goal-c, xcode, ipad

Richiesta di tentativi NSURLConnection - iphone, objective-c, xcode, ipad

Come posso richiedere un nuovo tentativo su una connessione NSURLC? nel mio metodo connectionDidFinishLoading è possibile archiviare e poi riprovare la connessione?

ho guardato [inizio connessione], ma non sembrava fare nulla. L'oggetto connessione contiene ancora la richiesta originale?

Grazie

risposte:

6 per risposta № 1

"Non è dichiarato esplicitamente, ma comunque documentazione suggerisce che NSURLConnection l'istanza non è destinata al riutilizzo:

NSURLConnection mantiene il suo delegato quando viene inizializzato. Rilascia il delegato quando la connessione termina il caricamento, non riesce o viene annullata.

Se il delegato è già stato rilasciato, non ha davvero senso rianimare l'oggetto connessione.


0 per risposta № 2

Se fossi in te, lo guarderei ASIHTTPRequest, che è MOLTO più facile da usare rispetto albusiness NSURLConnection integrato, ma anche molto più ricco di funzionalità. È possibile specificare il numero di tentativi, il timeout di errore e praticamente tutti gli aspetti di una richiesta HTTP.


0 per risposta № 3

Puoi risolvere questo mantenendo l'originale NSMutableURLRequest e creare nuovamente la connessione, su Swift è simile al seguente:

class MyConnectionHandler {
var request:NSMutableURLRequest?
var connection: NSURLConnection?
var retryCount=0
var maxRetries=2

...
functions to setup the request object, and create a connection
----

func connection(connection: NSURLConnection, didFailWithError error: NSError) {
if(retryCount<maxRetries) {
retryCount++
self.connection=NSURLConnection(request: request!, delegate: self, startImmediately: true)
} else {
<throw a tantrum>
}
}