2014-03-04 22 views
10

Ich versuche, alle Header für Anfrage/Antwort in meinem Logcat zu bekommen. Scheint, es gibt keinen einfachen Weg mit HttpURLConnection wie es mit org.apache.http ist. Nach this blog können Sie tun:HttpURLConnection Kabel Anmeldung in Android

sun.net.www.protocol.http.HttpURLConnection.level = ALL 

scheint dies für HttpURLConnection von Android Implementierung entfernt wurde. Gibt es eine einfache Möglichkeit, Anfragen/Antworten auf Logcat zu sniffen?

Dank

+0

Jeder? Es muss einen einfachen Weg geben ... –

+0

was versuchst du zu erreichen? Der Zugriff auf die Header für jede Anfrage kann leicht durchgeführt werden, wie von @Rhand gezeigt, aber es scheint, dass es mehr dazu gibt? – njzk2

Antwort

-2

Dieses etwas, das Sie leicht selbst tun können:

private static void logConnection(HttpURLConnection httpConnection) throws IOException { 
    int status = httpConnection.getResponseCode(); 
    Log.d("logConnection", "status: " + status); 
    for (Map.Entry<String, List<String>> header : httpConnection.getHeaderFields().entrySet()) { 
     Log.d("logConnection", header.getKey() + "=" + header.getValue()); 
    } 
} 
+0

Mit Ihrem Code protokollieren Sie nur den Antwortcode und den Header. Die Anfrage wird konsumiert und ist nicht mehr zugänglich –

+1

Dies ist nur die Protokollierung, würden Sie dies von der Methode aufrufen, wo Sie die Anfrage bearbeiten. z. B. offene Verbindung, Protokollantwortcode (durch Aufrufen von logConnection()), Prozessantwort. – Rhand

0

Ich bin nicht sicher, es mit Standard HttpURLConnection auf Android möglich ist. Daher ist es einfach, mit OkHttp Bibliothek zu erreichen:

HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); 
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS); 

OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); 
httpClientBuilder.addInterceptor(loggingInterceptor); 

OkHttpClient client = httpClientBuilder.build(); 
Request.Builder requestBuilder = new Request.Builder(); 
requestBuilder.url("http://android.com"); 

client.newCall(requestBuilder.build()).execute(); 
Verwandte Themen