[英]Headers not working in WebView Android
我是一名Android程序员,但有一个问题已经尝试解决了一段时间:
我使用webview,并传递标头以从Web删除页脚和标头 ,但是在进行重定向时标头会丢失。
public void isLogged() {
if (my_preferences.readElement(TAG_LOGGED, false)) {
WebSettings webSettings = web_pagos.getSettings();
webSettings.setJavaScriptEnabled(true);
web_pagos.loadUrl(url, getCustomHeaders());
web_pagos.setWebViewClient(getWebViewClient());
cancelProgress();
} else {
WebSettings webSettings = web_pagos.getSettings();
webSettings.setJavaScriptEnabled(true);
web_pagos.setWebViewClient(getWebViewClient());
web_pagos.loadUrl(url,getCustomHeaders());
cancelProgress();
}
}
private Map<String,String> getHeader()
{
Map<String,String> header = new HashMap<>();
header.put("nx-bodycss", "app-design");
return header;
}
private WebViewClient getWebViewClient()
{
return new WebViewClient()
{
@Override
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public boolean shouldOverrideUrlLoading(android.webkit.WebView view, WebResourceRequest request)
{
view.loadUrl(request.getUrl().toString(), getHeader());
return true;
}
@Override
public boolean shouldOverrideUrlLoading(android.webkit.WebView view, String url)
{
view.loadUrl(url, getHeader());
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.e("ConsultaPasaporte",url);
super.onPageStarted(view, url, favicon);
}
};
}
这是我的方法getCustomHeaders
private Map<String, String> getCustomHeaders()
{
Map<String, String> headers = new HashMap<>();
if(my_preferences.readElement(TAG_LOGGED,false)) {
headers.put("nx-bodycss", "app-design");
headers.put("nx-user-identification", MyApplication.get_dataUser().getIdentificacion());
headers.put("nx-user-fecha-pago", MyApplication.get_dataUser().getPago());
headers.put("nx-user-token",MyApplication.getTokenFirebase());
return headers;
}else{
headers.put("nx-bodycss", "app-design");
headers.put("nx-user-token",MyApplication.getTokenFirebase());
return headers;
}
}
我已经尝试解决这个问题一段时间了。 我将非常感谢您的帮助🙏🏻
传递标头以使用重定向的正确方法是什么?
事先非常感谢
您的getCustomHeaders()方法在哪里? 如果您要在loadUrl中发送标头,那么它将被重定向到仅收到的第一个响应,此时您只需要从后端获取它即可。 但是对于重定向,您将必须实现自定义请求/响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.