Регистрация проводки HttpURLConnection в Android
Я пытаюсь получить все заголовки для запроса/ответа в моем logcat. Кажется, нет простого способа с HttpURLConnection, как и с org.apache.http.
Согласно этот блог вы можете сделать:
sun.net.www.protocol.http.HttpURLConnection.level = ALL
Кажется, это было удалено из реализации Android для HttpURLConnection.
Есть ли простой способ обнюхать запросы/ответы на logcat?
Спасибо
Ответы
Ответ 1
Я не уверен, что это возможно со стандартным HttpURLConnection на Android. Поэтому легко использовать библиотеку OkHttp:
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();
Ответ 2
Это то, что вы можете легко сделать сами:
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());
}
}