使用NSURLConnection获取302 HTTP重定向的响应主体
我使用带有委托的NSURLConnection向URL发送HTTP GET请求。该请求被重定向到HTTP 302,并执行新的请求并检索数据。使用NSURLConnection获取302 HTTP重定向的响应主体
问题是我不希望重定向的HTTP请求的主体,但原始重定向响应的内容。
我已经实现了- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response
这是用redirectRepsonse调用,但connection:didReceiveData
直到新的重定向请求返回时才被调用。
迄今为止,除了使用基于CFNetwork的方法之外,我还没有找到解决方案。
更新: 我已经创建与您一起玩这个问题的示例项目:https://github.com/snod/302RedirectTest
任何想法?
从-connection:willSendRequest:redirectResponse:
的docs:
To receive the body of the redirect response itself, return nil to cancel the redirect. The connection continues to process, eventually sending your delegate a connectionDidFinishLoading or connection:didFailLoadingWithError: message, as appropriate.
你试过实现NSURLConnectionDataDelegate的方法呢? – orkoden 2014-09-05 10:11:41
当然,问题中提到的那两种方法来自该协议。 – snod 2014-09-05 11:25:39
你有没有得到这个工作?我有同样的问题。 – Locksleyu 2017-09-07 23:20:22