Ios NSUrlConnection连接:HTTP 302重定向期间未调用didReceiveResponse
我有一个类,它实现了NSURLProtocol,并以惊人的方式启动了一个新的NSURLConnection。我还需要所有请求的HTTP响应,所以我通过实现数据委托方法connection:didReceiveResponse来实现这一点。对于HTTP重定向,我还实现了connection:willSendRequest:redirectResponse:其中我调用NSURLProtocolClient方法进行重定向。下面是代码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
(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加载系统实现。它需要在您自己的实现中调用。