誰かがURLを要求したときにリダイレクトされた最後のURL(nth)を取得できる最も簡単なコードを投稿できますか?iOS 5で最後にリダイレクトされたURLを取得しますか?
私は非同期要求を使用する必要があることを知っていますが、問題を解決する完全な作業コードを試すことができません。
私はios5を使用していますので、ios5で最近追加された非同期inbuilt機能を使用することができます。
私はたくさんのことを試しましたが、私はまだうまくいきません。私はパラメータを持つGETリクエストを送信しようとしていますが、何らかの形でこれらのパラメータが原因サイトのリダイレクト:(に迷子にされている以下のコード!
NSURLRequest *request = [NSURLRequest requestWithURL:urlOriginal];
[NSURLConnection
sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
NSLog("the returned data should be the final data of the redirected url with parameters but it is not");
}];
}
EDIT
を使用すると、これは私が今やっていることです:
NSURLRequest *requestOriginal = [NSURLRequest requestWithURL:urlOriginal];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:requestOriginal delegate:self];
[connection start];
とデリゲート:
-(NSURLRequest *)connection:(NSURLConnection *)connection
willSendRequest:(NSURLRequest *)request
redirectResponse:(NSURLResponse *)redirectResponse
{
if (redirectResponse) {
NSMutableURLRequest *r = [request mutableCopy]; // original request
[r setURL: [request URL]];
return r;
} else {
NSLog(@"redirecting to : %@", [request URL]);
return request;
}
}
とログは私に、私が最初に渡されたgetパラメータと一緒に必要な正しいリクエストURLを与えます。
このリクエストからデータを取得するにはどうすればよいですか?別のcompletionHandlerデリゲートメソッド?
EDIT2:((NSURLResponse *)応答
:
(ボイド)接続:(NSURLConnection *)接続didReceiveResponse Iは、他delgatesを実装よう
オクラホマ接続:(NSURLConnection *)接続didReceiveData:(NSData *)データ
(void)接続:(NSURLConnection *)接続didFailWithError:(NSError *)エラー
(無効)connectionDidFinishLoading:(NSURLConnection *)接続
こんにちは。最後のリダイレクトURLを受け取ることができましたか?ありがとう。私は同じ問題を抱えています。 –