当我的 webView 访问一个 url 时捕获 http 包时遇到了一个问题。该包显示 ajax 发送的请求在 header 中有一个“X-requested-with”键,它的值是我的应用程序包名称,如“com.xxx”。我不希望我访问的 url 知道请求来 self 的应用程序,因此我需要将键“X-requested-with”替换为另一个值。但我尝试了 Add custom headers to WebView resource requests - android 中的 sloution| , 它们都不起作用。
loadUrl(Strring url, Map<String, String> extraHeaders)
只会在页面请求中调用,不会在ajax发送的资源请求中调用。 shouldOverrideUrlLoading(WebView view, String url)
和 WebViewClient.shouldInterceptRequest(android.webkit.WebView view, java.lang.String url)
将在每个请求中调用,但我无法修改其中的 header 。
那么这个问题有什么解决办法吗?非常感谢。
最佳答案
好吧,我终于解决了这个问题。我仍然找不到在加载页面中修改 ajax 发送的请求中的 header 的方法,但我选择在 Application
中覆盖 public String getPackageName()
.我查找调用堆栈,如果调用来自 android.webkit,我返回另一个字符串而不是我的包名称。所以我的问题解决了。但基本问题仍然存在。
关于android - Android webview中资源请求的请求头中key 'X-requested-with'的值如何修改,而不是页面请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720059/