网络上有一些请求网址,你输入的地址和你最终访问的地址是不同的,这就是因为网址重定向。
这两天在开发视频直播中发现了一些问题,就是用我们的播放器去播放视频地址,画面是定格的;而播放视频的真实地址(即重定向的地址)时,画面很流畅。http请求进行了302网址跳转。有一些浏览器,例如Safari浏览器,会自动跳转,有一些则不行。所以我需要得到302跳转后的地址,即URL重定向的地址。
搜集了一些资料,终于解决了。
参考网址:http://blog.csdn.net/sheldongreen/article/details/7977802
代码如下:
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="objc">- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor=[UIColor blueColor];
NSURL *url=[NSURL URLWithString:@"https://support.apple.com"];
NSURLRequest *request=[NSURLRequest requestWithURL:url];
NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:self];
if (!connection) {
NSLog(@"Fail");
}
}
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response
{
NSString *string1=[[request URL] absoluteString];
NSString *string2=[[response URL]absoluteString];
NSLog(@"%@",string1);
NSLog(@"%@",string2);
NSLog(@"\n=============\n");
return request;
}
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">得到结果如下:</span>
<pre name="code" class="objc">2014-12-10 11:37:36.992 URLText[4201:60b] https://support.apple.com/
2014-12-10 11:37:36.994 URLText[4201:60b] (null)
2014-12-10 11:37:36.995 URLText[4201:60b]
=============
2014-12-10 11:37:38.428 URLText[4201:60b] https://www.apple.com/support/
2014-12-10 11:37:38.431 URLText[4201:60b] https://support.apple.com/
2014-12-10 11:37:38.432 URLText[4201:60b]
=============
原地址为:
https://support.apple.com
我需要的地址为:
https://www.apple.com/support