为什么NSURLConnection会重定向到自身?

时间:2012-12-07 00:47:43

标签: ios nsurlconnection

我正在尝试处理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;
}

在这些方法中设置断点,我发现重定向指向

http://www.google.com/

具体而言,在connection:willSendRequest:redirectResponse:中,url1设置为http://www.google.com/url2为零。在connection:didReceiveResponse:中,url1也是http://www.google.com/

好的,好的。添加斜杠。但是,如果我使用带有斜杠的URL打开一个新的NSURLConnection,我会得到同样的回复。

为什么重定向的网址与传递给NSURLConnection的原始网址相同?

1 个答案:

答案 0 :(得分:0)

我相信你第一次看到该功能被击中并且还没有重定向。因此,如果您确实有重定向,您会在原始网址上看到此点击,然后在重定向上再次点击。出于您的目的,您可能希望在请求开始时存储URL以检查在尚未重定向时不执行任何操作。