Android webview在不使用shouldInterceptRequest的情况下为每个请求添加标头

tkclm6bt  于 2023-05-21  发布在  Android
关注(0)|答案(1)|浏览(150)

我想在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)
        }
9wbgstp7

9wbgstp71#

你可以尝试通过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)
  }

相关问题