我正在尝试处理 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;
}
在这些方法中设置断点,我发现重定向被定向到
具体来说, inconnection:willSendRequest:redirectResponse:
设置url1
为http://www.google.com/,并且url2
为 nil。在connection:didReceiveResponse:
,url1
也是http://www.google.com/。
好的。添加斜线。但是,如果我随后使用带有斜杠的 URL 打开一个新的 NSURLConnection,我会得到同样的结果。
为什么重定向的 URL 与传递给 NSURLConnection 的原始 URL 相同?