Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSUrlConnection连接:HTTP 302重定向期间未调用didReceiveResponse_Ios_Objective C_Network Programming_Nsurlconnection - Fatal编程技术网

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

Ios NSUrlConnection连接:HTTP 302重定向期间未调用didReceiveResponse,ios,objective-c,network-programming,nsurlconnection,Ios,Objective C,Network Programming,Nsurlconnection,我有一个类,它实现了NSURLProtocol,并以惊人的方式启动了一个新的NSURLConnection。我还需要所有请求的HTTP响应,所以我通过实现数据委托方法connection:didReceiveResponse来实现这一点。对于HTTP重定向,我还实现了connection:willSendRequest:redirectResponse:其中我调用NSURLProtocolClient方法进行重定向。下面是代码 (NSURLRequest *)connection:(NSURLC

我有一个类,它实现了NSURLProtocol,并以惊人的方式启动了一个新的NSURLConnection。我还需要所有请求的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不是nil时,不会调用didReceiveResponse。当我注释掉协议客户端的URLProtocol:wasrirectedToRequest:redirectResponse方法时,connection:didReceiveResponse再次开始被调用


我不知道这里发生了什么事。有人能解释一下这种行为吗?

客户端在WASRirectedToRequest中做什么……客户端是iOS内部的URL加载系统实现。它需要在您自己的实现中调用。