如何在WebView中更新请求标头

Bah*_*ahu 6 android webview http-headers

我正在尝试从android Webview访问URL。在加载通过chrome检查的URL时,一个标头值为null(请参见下图)。

在此处输入图片说明

我的问题是,我想更新Origin值。我该怎么做?

注意:如果Origin仅具有null值,则必须以其他方式更新,否则必须按原样加载

Ali*_*ard 3

对于更改请求标头,您可以使用 hashmap 并添加标头键值对

WebView web = findViewById(R.id.webView);

private Map<String, String> getHeaders() {
    Map <String, String> extraHeaders = new HashMap<String, String>();
    extraHeaders.put("Authorization", "Bearer"); 
    return headers;
}
Run Code Online (Sandbox Code Playgroud)

下一步需要创建 WebViewClient:

private WebViewClient getWebViewClient() {
    return new WebViewClient() {

    @Override
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        view.loadUrl(request.getUrl().toString(), getHeaders());
        return true;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url, getHeaders());
        return true;
    }
};
}
Run Code Online (Sandbox Code Playgroud)

将 WebViewClient 添加到您的 WebView:

web.setWebViewClient(getWebViewClient());
Run Code Online (Sandbox Code Playgroud)