我正在尝试在我的logcat中获取请求/响应的所有标头。似乎HttpURLConnection与org.apache.http一样没有简单的方法。 根据{{3}},您可以这样做:
sun.net.www.protocol.http.HttpURLConnection.level = ALL
似乎这已从HttpURLConnection的Android实现中删除。 有没有什么简单的方法可以在logcat上嗅探请求/响应?
由于
答案 0 :(得分:0)
我不确定Android上的标准HttpURLConnection是否可行。因此使用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();
答案 1 :(得分:0)
也许这个链接会有所帮助:Run Chromium with flags 尽管如此,您仍然需要执行 logcat 部分。这只会得到 JSON 格式的响应。
答案 2 :(得分:-1)
这是你可以轻松做到的事情:
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());
}
}