Wie sehe ich, request-Header, die auf Android-WebView-Anfragen?

Wie kann ich abfangen, alle Anfragen aus einer Android - WebView und Holen Sie sich die entsprechenden request-Header? Den will ich sehen-Header für jeden request aus meinem WebView einschließlich XHRs, Skript Quellen, css, etc.

Entspricht bei iOS ist das überschreiben NSURLCache die Ihnen all diese Informationen. Die folgenden sind wahrscheinlich die am nächsten an das, was ich will, aber soweit ich sehen kann WebViewClient immer nur gibt Sie uns zurück strings:

void onLoadResource(WebView view, String url);
WebResourceResponse shouldInterceptRequest(WebView view, String url);
  • Das Lesen der Anfrage-Header ist nicht möglich, mit Android WebView oder WebViewClient, afaik. Ich löste dieses problem mit einer leichten proxy.
  • hast du einen proxy-programmatisch auf die WebView oder externe (router/Netzwerk-Ebene)?
  • Ich habe die Konfiguration in Mobile Netzwerke in den Einstellungen des Gerätes. Andere Möglichkeit: Wenn ich nur ein quick-and-dirty-Methode zu überprüfen, den Header werde ich beginnen, eine Instanz von netcat (nc) auf meinem laptop und verbinden Sie den WebView an die netcat-Instanz.
  • Wenn ich das richtig verstanden keine dieser Lösungen ist geeignet für die Produktion Bereitstellung, wenn ich brauche, um diese Header, die während der regelmäßig ausgeführt wird, für Benutzer, richtig?
  • Richtig. Für regelmäßig läuft, ist es möglich zu konfigurieren, einen proxy-Programmierung mit Hilfe von Reflexion (Beispiel), aber solch ein Ansatz ist zerbrechlich und nicht unterstützt.
  • Eigentliche Antwort sollte sein, dass ab Android 5.0 kann man mit der neuen API-Methode WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request), wo die request parameter stellt die gewünschte info.

InformationsquelleAutor Mike Kwan | 2013-10-30
Schreibe einen Kommentar