NSURLConnection でリダイレクトを処理しようとしています。私の目的のために、後で使用するためにリダイレクトを記録し、残りのページのダウンロードを続行したいと考えています。テストするために、 http://www.google.comを読み取ろうとしました。リダイレクトを処理するコードは次のとおりです。
- (NSURLRequest *) connection: (NSURLConnection *) connection
willSendRequest: (NSURLRequest *) request
redirectResponse: (NSURLResponse *) redirectResponse
{
NSURL *url1 = [request URL];
NSURL *url2 = [redirectResponse URL];
if ([request URL] != nil)
self.redirect = [request URL];
return request;
}
- (void) connection: (NSURLConnection *) theConnection didReceiveResponse: (NSURLResponse *) response {
NSURL *url1 = [response URL];
int foo = 0;
}
これらのメソッドにブレークポイントを設定すると、リダイレクト先が
具体的には、connection:willSendRequest:redirectResponse:
ではhttp://www.google.com/にurl1
設定され、 nil です。では、http://www.google.com/でもあります。url2
connection:didReceiveResponse:
url1
いいよ。スラッシュを追加します。しかし、末尾にスラッシュが付いた URL を使用して新しい NSURLConnection を開くと、同じことが返されます。
リダイレクトされた URL が、NSURLConnection に渡された元の URL と同じなのはなぜですか?