使用stringWithContentsOfURL重定向后获取url

时间:2011-09-13 01:18:27

标签: iphone objective-c redirect

    NSString* HTML = [NSString stringWithContentsOfURL:url usedEncoding:&enc error:&error];

效果很好,但如果有重定向,我需要知道重定向页面的网址。

有什么想法吗?

感谢~~

2 个答案:

答案 0 :(得分:2)

您可能希望使用NSURLConnection并手动加载,而不是使用stringWithContesOfURL方法。然后,您可以在连接上设置URLConnectionDelegate。当您被重定向时,连接将在您的委托上调用此方法:

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse

request参数提供您要重定向到的URL。你可以检查它并用它做你想做的事。如果您想允许重定向继续,那么您应该从委托方法中返回它。

答案 1 :(得分:1)

在这里(同步方法):

NSURLResponse *response;
NSError *error;
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"URL_STRING"]];
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(%@,response.URL);