NSURLProtocol canInitWithRequest:多次调用

时间:2014-04-23 07:49:04

标签: ios uiwebview nsurlprotocol

我们的应用程序中有很多Web视图,我最近添加了一个NSURLProtocol来拦截它们的一些请求。

我注意到一些Web视图多次调用+ [NSURLPRotocol canInitWithRequest:]方法,看起来是完全相同的请求。有时6或7次。我想弄清楚为什么会发生这种情况。

有没有人有这方面的经验?我已经注销了[NSURL absoluteString]和httpMethod值,它们对于每个请求都是相同的。我希望这个方法只能为服务器所需的任何给定文件或资源调用一次,而不是多次。它似乎每个网页都有所不同。

任何想法?

1 个答案:

答案 0 :(得分:4)

我不是专家,但AFAIK这是正常行为。对于同一请求,可以多次调用[NSURLPRotocol canInitWithRequest:]。如果您希望每次请求只收到一次通知,则应在-startLoading方法中捕获它。我发现本教程有助于构建简单的NSURLProtocol子类,它将做到这一点:http://www.raywenderlich.com/59982/nsurlprotocol-tutorial