2012-03-31 9 views
9

短縮URL(例:t.co/12345678)ですNSURLConnection経由でページ全体を読み込まなくても、リダイレクトを解決したいと思います。明らかに、NSURLConnectionを送信して応答を待つことで取得できますが、これは最初にページ全体をロードします。私はリダイレクトURLだけを探しています。これは可能ですか?もしそうなら、どうですか?NSURLのリダイレクトを解決しますか?

=============

編集:amleszkにより示唆されるように後世のために、ここでは、ソリューションです。

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:shortenedURL 
             cachePolicy:NSURLRequestReloadIgnoringCacheData 
            timeoutInterval:15.0f]; 

[request setHTTPMethod:@"HEAD"]; 

[NSURLConnection sendAsynchronousRequest:request 
            queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
          NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response; 
          NSURL *resolvedURL = [httpResponse URL]; 
          NSLog(@"%@", resolvedURL); 
         }]; 

答えて

5

同じ本の方法:finding the download size of a URL (Content-Length)

しかし、あなたは[NSURLResponseからstatusCode]をしたい= 301/302/303、ここで Locationヘッダー:Getting "Location" header from NSHTTPURLResponse

+0

うーん、返されたステータスコードは200ですhttpヘッダー応答にはリダイレクトURLは含まれません。応答URLには元のURLのみが含まれています... – Keller

+0

キャッシュの問題でした。魅力のように働いた、ありがとう! – Keller

関連する問題