如何在没有UIWebview的情况下拦截NSURLRequest的重定向

时间:2012-06-01 08:30:07

标签: objective-c uiwebview nsurlrequest

我有一个创建NSURLRequest的方法。如果我在UIWebView中加载此NSURLRequest,我会发现- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType有一些重定向。

如果不在UIWebView中加载我的请求,我如何拦截此重定向? (我根本不想要它)

3 个答案:

答案 0 :(得分:3)

嗯,你必须告诉我们你是如何开始加载它的。你在使用NSURLConnection吗?然后使用-connection:willSendRequest:redirectResponse:委托方法。请务必阅读文档以了解何时调用它。它通常被调用只是因为框架在实际与任何内容进行通信之前调整了您的请求,因此并非每次调用都是重定向。

答案 1 :(得分:1)

如果我理解得很好,你想抓住请求而不是在webview中加载它。如果那是你想要做的,只需让你的方法返回NO。

           - (BOOL)webView:(UIWebView *)webView 
shouldStartLoadWithRequest:(NSURLRequest *)request 
            navigationType:(UIWebViewNavigationType)navigationType.

答案 2 :(得分:0)

您可以继承NSURLCache以拦截任何网址请求。

此示例:http://cocoawithlove.com/2010/09/substituting-local-data-for-remote.html演示使用子类加载本地文件来代替远程文件,但您还应该能够使用类似的子类来取消请求或执行您需要的其他操作。