使用NSURLConnection获取302 HTTP重定向的响应正文

时间:2014-09-05 10:02:35

标签: ios objective-c nsurlconnection http-status-code-302 nsurlconnectiondelegate

我正在使用带有委托的NSURLConnection向URL发送HTTP GET请求。该请求通过HTTP 302重定向,并执行新请求并检索数据。

问题在于我不想要重定向的HTTP请求的主体,而是原始重定向响应的内容。

我已经使用redirectRepsonse实现了- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response,但在新的重定向请求返回之前不会调用connection:didReceiveData

到目前为止,除了使用基于CFNetwork的方法之外,我找不到任何解决方案。

更新: 我创建了一个示例项目,您可以使用该问题:https://github.com/snod/302RedirectTest

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

来自-connection:willSendRequest:redirectResponse:的{​​{3}}:

  

要接收重定向响应的主体,请返回nil以取消重定向。连接继续处理,最终根据需要向您的委托发送connectionDidFinishLoading或connection:didFailLoadingWithError:消息。