Domanda

Io uso il seguente codice:

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSHTTPURLResponse *)response {
NSLog(@"Received redirect Response: %@ %@", [response allHeaderFields], [NSHTTPURLResponse localizedStringForStatusCode:[response statusCode]]);
return request;
}

Quando ricevo un 302 con i seguenti dati di intestazione:

< HTTP/1.1 302 Found  
< Date: Wed, 03 Mar 2010 07:47:17 GMT  
< Server: lighttpd/1.4.19  
< Content-length: 0  
< Content-type: text/html;charset=utf-8  
< Location: `<new Location>`  
< Vary: Accept-Encoding  

questo è l'output in console gdb:

  

2010-03-03 08: 42: 03,265 MyProg [68106: 207] risposta di reindirizzamento ricevute:   (Null) errore del server 2010-03-03 08: 42: 14,414 MyProg [68106: 207]   Risposta di reindirizzamento Ricevuto: {
      Collegamento = "keep-alive";
      "Content-Encoding" = gzip;
      "Content-Length" = 20;
      "Content-Type" = "text / html; charset = utf-8";
      Date = "mer, 3 mar 2010 07:42:10 GMT";
      "Keep-alive" = "timeout = 15, max = 100";
      Ubicazione = "<new Location>";
      Server = "lighttpd / 1.4.19";
      Variare = "Accept-Encoding"; } Trovati

Quando si utilizza Curl ottengo solo una risposta e tracedump dice lo stesso, quindi sono sicuro che il server invia solo un reindirizzamento.
Perché questo selettore chiamato due volte?

È stato utile?

Soluzione

connection:willSendRequest:redirectResponse: viene chiamato prima di ogni richiesta, così è chiamato una volta la richiesta originale, che non era un redirect così risposta è pari a zero; allora viene chiamato durante il caricamento del bersaglio reindirizzamento, dove la risposta è 302 risposta alla richiesta iniziale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top