NSUrlConnection连接:在HTTP 302重定向期间未调用didReceiveResponse

时间:2015-03-17 16:10:52

标签: ios objective-c network-programming nsurlconnection

我有一个实现NSURLProtocol的类,并在NSURLConnection方法中启动了一个新的startLoading。我还需要所有请求的HTTP响应,所以我通过实现数据委托方法connection:didReceiveResponse来实现。对于HTTP重定向,我还实现connection:willSendRequest:redirectResponse:,其中我调用NSURLProtocolClient方法进行重定向。以下是代码

(NSURLRequest *)connection:(NSURLConnection *)connection
             willSendRequest:(NSURLRequest *)request
             redirectResponse:(NSURLResponse *)response {
    if (response) {
        [self.client URLProtocol:self 
          wasRedirectedToRequest:request 
                redirectResponse:response];
    }

    return request;
}

当redirectResponse不是connection:didReceiveResponse时,此代码的问题是nil永远不会被调用。当我注释掉协议客户端的URLProtocol:wasRedirectedToRequest:redirectResponse方法时,connection:didReceiveResponse开始再次被调用。

我不确定这里发生了什么。任何人都可以对这种行为有所了解吗?

0 个答案:

没有答案