经过WebView翻开网页时,WebView会在恳求头中主动添加x-requested-with
字段,字段值为应用的包名。
本文介绍怎么修正x-requested-with的值。
查看恳求头
为了便利调试,能够运用Chrome Inspect工具来调试WebView加载的网页。
- 装备WebView敞开调试形式,代码如下:
WebView.setWebContentsDebuggingEnabled(true)
- 手机敞开开发者形式,衔接电脑,运用Chrome浏览器或Edge浏览器,翻开Inspect网页。
// Chrome 浏览器
chrome://inspect/#devices
// Edge 浏览器
edge://inspect/#devices
- 挑选想要调试的网页,点击inspect。

- 在翻开的Inspect窗口中点击网络查看恳求头 。

修正x-requested-with
- 经过loadUrl修正
在加载网页时,装备恳求头进行修正,代码如下:
webview.loadUrl("https:///", mapOf(Pair("x-requested-with", "")))
效果如图:
经过loadUrl加载的链接

链接网页内部的其他恳求

能够看到,此方法只对经过loadUrl加载的链接收效,链接网页内部其他恳求的x-requested-with没有被修正。
- 经过获取包名方法修正
找到另一个解决方案,在Application
找到WebView获取包名的方法,修正返回值,代码如下:
class ExampleApplication : Application() {
override fun getPackageName(): String {
try {
val stackTrace = Thread.currentThread().stackTrace
for (item in stackTrace) {
if ("org.chromium.base.BuildInfo".equals(item.className, true)) {
if ("getAll".equals(item.methodName, true)) {
return ""
}
}
}
} catch (e: Exception) {
e.printStackTrace()
}
return super.getPackageName()
}
}
// 在manifest中装备自定义的application
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name=".base.ExampleApplication"
.../>
</manifest>
效果如图:


经过这种方法,所有恳求的x-requested-with都会被修正。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。