【发布时间】:2013-10-30 19:53:54
【问题描述】:
如何拦截所有来自 Android WebView 的请求并获取相应的请求标头?我想查看我的WebView 发出的每个请求的标头,包括 XHR、脚本源、css 等。
iOS 上的等价物是覆盖NSURLCache,它将为您提供所有这些信息。以下可能是最接近我想要的,但据我所知WebViewClient 只会给我们返回字符串:
void onLoadResource(WebView view, String url);
WebResourceResponse shouldInterceptRequest(WebView view, String url);
【问题讨论】:
-
Android 的
WebView或WebViewClient无法读取请求标头,afaik。我使用轻量级代理解决了这个问题。 -
@acj - 您是否以编程方式在
WebView或外部(路由器/网络级别)上进行代理? -
我在设备设置中的移动网络中配置它。另一种选择:如果我只需要一种快速而简单的方法来检查标题,我将在我的笔记本电脑上启动一个 netcat (
nc) 实例并将WebView连接到 netcat 实例。 -
如果我理解正确,如果我需要在用户的常规运行期间获取这些标头,这些解决方案都不适合生产部署,对吧?
-
正确。对于常规运行,可以使用反射 (example) 以编程方式配置代理,但任何此类方法都是脆弱且不受支持的。