私はまた、リクエストヘッダを傍受して、いくつかの問題を抱えていましたWebView myWebView
にあります。
まず、myWebView
のカスタムWebViewClient
を設定してこれを試しました。
myWebView.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.v("USERAGENTBROWSE", "shouldOverrideUrlLoading api >= 21 called");
//some code
return true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.v("USERAGENTBROWSE", "shouldOverrideUrlLoading api < 21 called");
//some code
return true;
}
});
しかし、方法は決して呼ばれませんでした。そして、私には本当に理由がない。
それから私は"User-Agent"
、"Cache-Control"
のようないくつかの共通のヘッダを傍受する方法、等:
myWebView.getSettings().setUserAgentString("your_custom_user_agent_header");
myWebView.getSettings().setCacheMode(int mode);
...
はそれが誰かを助けるかもしれない希望があることがわかりました。
Androidの「WebView」または「WebViewClient」、afaikでは要求ヘッダーを読み取ることはできません。軽量プロキシを使用してこの問題を解決しました。 – acj
@acj - 'WebView'または外部(ルータ/ネットワークレベル)でプロキシをプログラムで実行しましたか? –
モバイルネットワークでデバイス設定で設定します。別のオプション:ヘッダーをチェックするためのクイックダーティメソッドが必要な場合は、ラップトップでnetcat( 'nc')のインスタンスを起動し、' WebView'をnetcatインスタンスに接続します。 – acj