NSURLRequest Timeout IOS

Ho bisogno di impostare il timeout di 15 sec o 30 sec con UIRequest, ma ci vuole sempre uno di default. C’è un modo per impostare il minimo di timeout di connessione.

come si fa a impostare il timeout?
Si prega di inviare il codice che si utilizza.
Ho trovato la risposta in questo link come ho avuto lo stesso problema e ha funzionato per me. kelp.phate.org/2012/07/set-timeout-nsurlrequest.html

OriginaleL’autore Codesen | 2012-07-30

3 risposte

  1. 11

    Questa risposta spiega il valore minimo di timeoutInterval di un NSURLRequest oggetto. Se avete bisogno di un valore più piccolo, allora si può farlo solo con l’avvio di un’NSTimer con il tempo desiderato e la cottura con il metodo del timer, si annulla la connessione del vostro NSURLConnection oggetto. Come in:

    //....
    connection = [[NSURLConnection connectionWithRequest:request delegate:self] retain];
    [request release];
    
    [connection start];
    
    if (timer == NULL) {
    
        timer = [NSTimer scheduledTimerWithTimeInterval: TimeOutSecond
                                                 target: self
                                               selector: @selector(cancelURLConnection:)
                                               userInfo: nil 
                                                repeats: NO];
        [timer retain];
    }
    
    
    - (void)cancelURLConnection:(NSTimer *)timerP {
        [connection cancel]; //NSURLConnection object
        NSLog(@"Connection timeout.");
        [timer invalidate];
    }

    OriginaleL’autore Eren Beşel

  2. 3

    Sembra che ci sia un problema con l’impostazione dell’intervallo di timeout di proprietà in fase di costruzione:

    NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:240.0];

    Invece, messa DOPO la costruzione:

    request.timeoutInterval = 70;

    Anche notare che sembra che ci siano alcune limitazioni per quanto in basso si può impostare l’intervallo. Leggere questo post per ulteriori informazioni:
    https://devforums.apple.com/message/108087#108087

    Se ho impostato il timeout di più di 240 si sta lavorando bene. Ho bisogno di un meno di 240 sec.
    240 sembra essere il valore minimo accettabile (vedi link nella risposta di cui sopra). Tuttavia, alcuni report successo impostando l’intervallo di tempo dopo la costruzione (e, forse, la regola non è forzato in quel caso). Ma questo potrebbe cambiare in futuro. Forse si dovrebbe prendere in considerazione un altro approccio. 15 sec su una lenta rete cellulare potrebbe essere problematico…
    in iOS7 e iOS8 è possibile impostare qualsiasi valore che si desidera. L’impostazione di default è 60
    io sono in grado di impostare un intervallo di valori per il tempo in ios 7 e 8, ma non è attaccare al valore specificato. Dire se ho impostato un intervallo di 180 secondi, il didFailWithError: viene attivato che vanno da 75 a 220 secondi e alcune volte più grande di questo , ma non in base a un intervallo di 180 secondi. Sto facendo chiamate asincrone a servizi web con metodo POST. Alcuna idea su questo?

    OriginaleL’autore EsbenB

  3. 1

    Richieste POST hanno un timeout minimo è di 4 minuti, credo. Il modo più sicuro è quello di avviare un NSTimer e annullare la richiesta quando il timeout incendi.

    OriginaleL’autore Sulthan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *