我正在尝试处理NSURLConnection中的重定向。出于我的目的,我想记录重定向以供以后使用,并继续下载页面的其余部分。为了测试,我试着阅读http://www.google.com。这是处理重定向的代码:
- (NSURLRequest *) connection: (NSURLConnection *) connection
willSendRequest: (NSURLRequest *) request
redirectResponse: (NSURLResponse *) redirectResponse
{
NSURL *url1 = [request URL];
NSURL *url2 = [redirectResponse URL];
if ([request URL] != nil)
self.redirect = [request URL];
return request;
}
- (void) connection: (NSURLConnection *) theConnection didReceiveResponse: (NSURLResponse *) response {
NSURL *url1 = [response URL];
int foo = 0;
}
在这些方法中设置断点,我发现重定向指向
具体而言,在connection:willSendRequest:redirectResponse:
中,url1
设置为http://www.google.com/,url2
为零。在connection:didReceiveResponse:
中,url1
也是http://www.google.com/。
为什么重定向的网址与传递给NSURLConnection的原始网址相同?
答案 0 :(得分:0)
我相信你第一次看到该功能被击中并且还没有重定向。因此,如果您确实有重定向,您会在原始网址上看到此点击,然后在重定向上再次点击。出于您的目的,您可能希望在请求开始时存储URL以检查在尚未重定向时不执行任何操作。