2012-03-31 98 views
9

我有一個縮短的網址(例如t.co/12345678)。我想解決重定向而不必通過NSURLConnection加載整個頁面。顯然,我可以通過發送一個NSURLConnection並等待響應來獲得它,但是這會首先加載整個頁面。我只在尋找重定向網址。這可能嗎?如果是這樣,怎麼樣?解決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 2012-04-01 00:34:16

+0

糟糕,這是一個緩存問題。像魅力一樣工作,非常感謝! – Keller 2012-04-01 19:18:41