我想将我的标头添加到 webview 中的每个请求,但我不想使用 OkHttp 或 DefaultHttpClient 重新创建请求,因为来自 shouldInterceptRequest 的 WebResourceRequest 不返回请求正文,所以我的 POST 请求在发送时没有价值。
我尝试在 shouldInterceptRequest 中添加我的标头,但我没有正常工作,似乎它没有在每个请求上添加。
override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? {
request?.requestHeaders?.clear()
request?.requestHeaders?.apply {
put("header", "value")
}
return super.shouldInterceptRequest(view, request)
}
你能尝试通过
view: WebView
参数传递标头值吗:
public void loadUrl(@NonNull String url, @NonNull Map<String, String> additionalHttpHeaders) {
所以像:
override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? {
view.loadUrl("your url", mapOf("header" to "value"))
return super.shouldInterceptRequest(view, request)
}