开发者

iPhone NSURL get last redirected url

开发者 https://www.devze.com 2022-12-14 21:43 出处:网络
i wonder how can you update your NSURL to the last url that a your url will redirect to using NSURL or NSRequest

i wonder how can you update your NSURL to the last url that a your url will redirect to

using NSURL or NSRequest

appreciate your 开发者_运维知识库help. thanks.


zanque's solution works, but in order to avoid downloading "useless" data, I'd change the http method to 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;


i did it,

here is how

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];


You'll only be able to find this out after trying to connect using NSURLConnection. If you add a method to your NSURLConnection delegate, -connection:willSendRequest:redirectResponse:, you'll be notified before redirects happen. Just grab the URL from the passed request, and that's your answer.


You cause following swift code to get the final redirected url:

            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
0

精彩评论

暂无评论...
验证码 换一张
取 消