我想知道如何将您的NSURL更新为您的网址将重定向到的最后一个网址 使用NSURL或NSRequest
感谢您的帮助。 感谢。
答案 0 :(得分: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;
答案 1 :(得分: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];
答案 2 :(得分:1)
尝试使用NSURLConnection进行连接后,您才能找到它。如果向NSURLConnection委托添加方法,-connection:willSendRequest:redirectResponse:,则会在重定向发生之前通知您。只需从传递的请求中获取URL,这就是您的答案。
答案 3 :(得分:0)
您导致以下快速代码获取最终的重定向网址:
let request = NSMutableURLRequest(url: url, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 15.0)
request.httpMethod = "HEAD"
var response: URLResponse? = nil
do {
try NSURLConnection.sendSynchronousRequest(request as URLRequest, returning: &response)
} catch { //Handle exception //if any
}
let finalURL = response?.url