Sto cercando di rendere le intestazioni di WebView simili a quelle dell'utente che utilizza solo il normale browser e non utilizza una WebView. Da quello che posso raccogliere le intestazioni sono identiche a parte che WebView invia anche un'intestazione X-Requested-With contenente il nome del pacchetto delle app. C'è un modo per prevenirlo?Android: Disabilita X-Requested-With Header in WebView
13
A
risposta
1
È possibile farlo per API Android> 11
public class AndroidMobileAppSampleActivity extends Activity {
Map<String, String> extraHeaders = new HashMap<String, String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView mainWebView = (WebView) findViewById(R.id.mainWebView);
// must define X-Requested-With, if header missing, then webview will
//add your package name
extraHeaders.put("X-Requested-With", "your presentation");
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
mainWebView.loadUrl("http://www.somesite.com", extraHeaders);
}
private class MyCustomWebViewClient extends WebViewClient {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view,
String url) {
// TODO Here you must overwrite request using your
// HttpClient Request
// and pass it to new WebResourceResponse
return new WebResourceResponse(response.ContentType, response.ContentEncoding, responseStream);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// Apply again your heades here
view.loadUrl(url, extraHeaders);
return true;
}
}
}
+1
Ciò significa che possiamo modificare solo il valore dell'intestazione "X-Requested-With". È possibile eliminarlo o scartarlo completamente? – Manisha
+1 solito X-richiesta-con viene utilizzato per rilevare richiesta AJAX, tipo di tubi cose quando Android invia l'intestazione su _ogni_ richiesta, Ajax o no . – virtualeyes
Sembra molto simile a http://stackoverflow.com/questions/7610790/add-custom-headers-to-webview-resource-requests-android – jlindenbaum
@KingFu - Sei riuscito a scartare completamente l'intestazione X-Request-With? Perché tutte le risposte riguardano principalmente come modificare o modificare l'intestazione invece di come eliminarla o disattivarla. – Manisha