2009-12-23 27 views

回答

1

您只有在嘗試使用NSURLConnection進行連接後才能找到它。如果您向NSURLConnection委託添加方法,則將在重定向發生之前通知您 - 連接:willSendRequest:redirectResponse:。只需從傳遞的請求中獲取URL,這就是您的答案。

+0

我想同步做它..可以做到嗎? – 2009-12-23 12:11:03

+0

我不這麼認爲。蘋果不鼓勵同步操作。 – 2009-12-23 13:18:11

6

我做到了,

這裏是

NSURL *originalUrl=[NSURL URLWithString:@"http://YourURL.com"]; 
NSData *data=nil; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:originalUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10]; 
NSURLResponse *response; 
NSError *error; 
data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
NSURL *LastURL=[response URL]; 
[request release]; 
[error release]; 
7

zanque的解決方案是如何工作的,但爲了避免下載 「無用」 的數據,我會改變的HTTP方法HEAD:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:orinigalURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15.0]; 
[request setHTTPMethod:@"HEAD"]; 
NSURLResponse *response = nil; 
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; 
NSURL *finalURL = response.URL; 
+3

這可能更適合作爲評論而不是答案。或者也許是編輯。 – EWit 2014-10-03 14:16:04

+1

@EWit,用戶有1個Rep。他們無法發表評論。另外,這爲問題提供了另一種答案。 – Andy 2014-10-03 14:50:49

+0

@我剛剛發表了評論,意在提供一些未來的指導。但是,因爲它延伸到現有的答案上,所以最好把它作爲答案的編輯,這樣人們閱讀它就會意識到問題和解決方案。也有一個原因,我選擇使用「可能」而不是「應該」。 – EWit 2014-10-04 11:58:39