106 votes

Ajouter des en-têtes personnalisés à WebView demandes de ressources - android

J'ai besoin d'ajouter des en-têtes à TOUTES les demandes en provenance de la WebView. Je sais loadURL a le paramètre de extraHeaders, mais celles-ci sont appliquées uniquement à la demande initiale. Toutes les demandes ultérieures ne contiennent pas les en-têtes. J'ai regardé tous les remplacements dans WebViewClient, mais rien ne permet pour l'ajout d'en-têtes de requêtes de ressources - onLoadResource(WebView vue, String url). Toute aide serait merveilleux.

Merci, Ray

87voto

peceps Points 7246

Essayez

loadUrl(Strring url, Map<String, String> extraHeaders)

Malheureusement, cela ne fonctionne que sur API8+.

23voto

leeroya Points 31

Comme mentionné précédemment, vous pouvez faire ceci:

 WebView  host = (WebView)this.findViewById(R.id.webView);
 String url = "<yoururladdress>";

 Map <String, String> extraHeaders = new HashMap<String, String>();
 extraHeaders.put("Authorization","Bearer"); 
 host.loadUrl(url,extraHeaders);

J'ai testé cela et avec un Contrôleur MVC que j'ai prolongé l'Autoriser l'Attribut d'inspecter l'en-tête et la tête est là.

4voto

R Earle Harris Points 513

Vous devriez être en mesure de contrôler tous vos en-têtes en sautant loadUrl et la rédaction de votre propre loadPage à l'aide de Java HttpURLConnection. Ensuite, utilisez la webview est loadData pour afficher la réponse.

Il n'y a pas d'accès pour les en-têtes de Google, qui offre. Ils sont dans un JNI appel, au fond de la WebView source.

-16voto

Satish Points 63

Utilisez ceci:

webView.getSettings().setUserAgentString("User-Agent");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X