setUserAgentString en Android webview no tiene efecto en el encabezado HTTP utilizado en loadURL ()
Intenté cambiar la cadena User-Agent en la solicitud HTTP de una aplicación de Android. He probado esto junto con wireshark y el emulador, y he visto que, a pesar de que establezco la cadena de usuario en la vista web, la solicitud de loadUrl asociada no usa esta cadena de agente de usuario. En cambio, veo la cadena de agente de usuario de Dalvik en la captura de wirehark. Aquí está el código abstracto. ¿Algunas ideas? ¿O el emulador no es compatible con esto?
@Override
public void run() {
assert(context != null);
...
...
webView = new WebView(context);
...
String defaultUserAgent = "betaUAteststring";
// Clear per-application caches etc
webView.clearCache(true);
webView.clearHistory();
webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
....
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
..
}
@Override
public void onLoadResource(WebView view, String url) {
...
}
});
// Start loading
webView.getSettings().setUserAgentString(defaultUserAgent);
String setUA = webView.getSettings().getUserAgentString();
//--> logging here shows the correct user agent, so the webview does accept the value
// However the following statement does not result in an http request with the webviews user agent
webView.loadUrl(url);
//Alternative doesn't help either (and shouldn't according to javadoc)
//Map<String,String> headerMap = new HashMap<String,String>();
//headerMap.put("User-Agent","uaTestInAMap");
//webView.loadUrl(url, headerMap);
}