Ajouter des en-têtes personnalisés à venir à partir d'android webview
J'ai besoin d'ajouter des en-têtes à TOUTES les demandes en provenance de la WebView
. Je sais loadURL
a le paramètre pour ajouter des en-Têtes supplémentaires, mais ceux qui ne sont appliqués qu'à certaines des demandes.
Toutes les ressources (liées) demandes de ne pas contenir 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 view, String url)
et shouldInterceptRequest(Webview,url)
. Toute aide serait merveilleux.
OriginalL'auteur Gopichand | 2013-08-23
Vous devez vous connecter pour publier un commentaire.
shouldInterceptRequest(Webview,url)
peut vous aider à intercepter chaque demande d'un site, tels que JavaScript, CSS, Image. Puis à l'intérieur deshouldInterceptRequest(Webview,url)
vous pouvez utiliser le paramètreurl
initiaux de la nouvelle requête http en utilisantHttpClient
etHttpPOST
, voici un exemple de code :Ensuite, vous pouvez mettre
responseInputStream
àreturn WebResourceResponse(<content-type>, <encoding>, reponseInputStream)
dans votreshouldInterceptRequest(Webview,url)
si vous avez une demande qui n'a pas besoin d'ajouter plus de tête, juste le filtre et
return null
,shouldInterceptRequest(Webview,url)
fera le reste.Espère que cela peut vous aider.
seulement liés aux ressources demandes, je suppose que vous ne voulez pas ajouter des en-têtes de page web elle-même, il vous suffit de le filtrer dans
ShouldInterceptRequest()
à l'aide de la demande de contenu de type autre que "text/html".Comment puis-je obtenir du contenu-type de demande? Autant que je sache, on ne peut obtenir que de réponse.
Jetez un oeil à ici. À l'aide de
httpResponse.getEntity()
pour obtenir leHttpEntity
.Merci pour vos contributions.
OriginalL'auteur admar.kevin