拦截来自Android WebView的* all *请求

时间:2014-10-05 13:00:13

标签: android webview chromium nsurlprotocol

标题说明了一切。我想了解{strong>一切 WebView所要求的内容。一些奇怪的限制,如不了解XHR POST是不可接受的。换句话说,类似于iOS的东西在NSURLProtocol中。那个是应用程序范围的钩子。我不需要这种级别的控制,WebView - 特定于实例的钩子就足够了。现在,我知道Android上没有任何类似的东西。我知道shouldOverrideUrlLoadingshouldInterceptRequest,但它基本上无法使用。我需要知道请求(方法,HTTP版本,标题,你知道),而不仅仅是URL字符串。此外,拦截是尴尬的同步。如果shouldInterceptRequest呼叫被阻止,会发生什么情况,因为我需要向不同的服务器询问相关资源?在我看来,它只是为本地资源缓存而设计的。

另一方面,我愿意抛出任何问题。某种本土图书馆,挂入低层内部?借助现有项目(pwnallmogoweb)扩展Chromium接口?反映现有的webkit类私有化?应用程序专用代理?任何见解都表示赞赏。我已经阅读了两十个现有的SO问题。他们都提出了部分黑客攻击(比如使用JavaScript解决XHR POST缺陷)或者通常都没有反应。

2 个答案:

答案 0 :(得分:1)

尝试检查:

https://github.com/ac-pm/Inspeckage

它需要Xposed和root访问权限才能工作。我已经能够查看来自应用程序的WebView请求。我正在弄清楚如何使用Python的请求模块重新创建它们。

希望有帮助。

答案 1 :(得分:0)

如果我了解您的目标,请尝试:

WebView.setWebContentsDebuggingEnabled(true);

打开Chrome并转到网址 chrome:// inspect /#devices

有关详细信息:

https://developers.google.com/web/tools/chrome-devtools/remote-debugging

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews

相关问题