Frage

Ich verwende den folgenden Code:

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

Wenn ich ein 302 mit den folgenden Kopfdaten erhalten:

< 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  

Dies ist die Ausgabe in GDB-Konsole:

  

2010-03-03 08: 42: 03,265 myprog [68106: 207] Received Umleitung Antwort:   (Null) Serverfehler 2010-03-03 08: 42: 14,414 myprog [68106: 207]   Empfangene Umleitung Antwort: {
      Verbindung = "Keep-Alive";
      "Content-Encoding" = gzip;
      "Content-Length" = 20;
      "Content-Type" = "text / html; charset = utf-8";
      Date = "Mi, 3. März 2010 07.42.10 GMT";
      "Keep-Alive" = "timeout = 15, max = 100";
      Location = "<new Location>";
      Server = "lighttpd / 1.4.19";
      Variieren = "Accept-Encoding"; } Gefunden

Wenn Locke ich mit bekommen nur eine Antwort und tracedump sagt das gleiche, so bin ich sicher, dass der Server nur eine Umleitung sendet.
Warum heißt dieser Selektor zweimal?

War es hilfreich?

Lösung

connection:willSendRequest:redirectResponse: wird vor jeder Anforderung aufgerufen, so dass er einmal auf der ursprünglichen Anforderung aufgerufen wird, das war nicht eine Umleitung so Antwort ist gleich Null; dann wird es genannt, wenn das Umleitungsziel Laden, wo ist die 302 Antwort auf die ursprüngliche Anfrage.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top