android– 通过在shouldInterceptRequest中向WebResourceRequest的标头添加标头,将自定义标头添加到WebView不起作用

android– 通过在shouldInterceptRequest中向WebResourceRequest的标头添加标头,将自定义标头添加到WebView不起作用,第1张

概述我需要为WebView中的页面加载添加自定义标头,但它不起作用,标头未设置:@OverridepublicWebResourceResponseshouldInterceptRequest(WebViewview,WebResourceRequestrequest){request.getRequestHeaders().add("MyHeader","MyValue");returnsuper.shouldInte

我需要为WebVIEw中的页面加载添加自定义标头,但它不起作用,标头未设置:

@H_419_5@@OverrIDepublic WebResourceResponse shouldInterceptRequest (WebVIEw vIEw,  WebResourceRequest request){    request.getRequestheaders().add("Myheader","MyValue");     return super.shouldInterceptRequest(vIEw, request);}

我在这做错了什么?我在AndroID 5上运行.

我已经看到很多答案,说你必须自己做http请求并返回WebResourceResponse.这是因为即使你像我一样修改标题,它们也会被忽略吗?

我还试图在AndroID源代码中找到该位置的调用
调用shouldInterceptRequest的位置在哪里,所以我可以看到它是如何工作的,但我找不到它.

解决方法:

我自己找到了答案,它就在docs:

If the return value is null, the WebVIEw will continue to load the
resource as usual. Otherwise, the return response and data will be
used.

此外,一个简单的测试显示WebVIEwClIEnt.shouldInterceptRequest的基本实现返回null.因此,WebVIEw基本上继续像往常一样加载资源.

换句话说,我不能只为标头添加一个值并期望它被使用.
我实际上需要自己做请求并返回响应.

太糟糕了,没有办法只修改标头并让默认实现使用它.

我知道我可以通过调用带有头文件的loadUrl方法设置头文件,但如果我第一次加载本地页面然后加载在线页面,则不会使用头文件.

总结

以上是内存溢出为你收集整理的android – 通过在shouldInterceptRequest中向WebResourceRequest的标头添加标头,将自定义标头添加到WebView不起作用全部内容,希望文章能够帮你解决android – 通过在shouldInterceptRequest中向WebResourceRequest的标头添加标头,将自定义标头添加到WebView不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1111100.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存