Android webview 将标头添加到每个请求,而无需从 shouldInterceptRequest 方法重新创建请求

问题描述 投票:0回答:1

我想将我的标头添加到 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)
        }
android webview
1个回答
0
投票

你能尝试通过

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)
  }
© www.soinside.com 2019 - 2024. All rights reserved.