android - OkHttp - 启用日志

标签 android web-services http okhttp

我使用 Retrofit 来进行 HTTP 请求和 JSON 解析,我喜欢打开调试日志的方式。日志允许查看正文请求、URL……这非常有用。由于 Retrofit 使用 OkHttp,我想知道 OkHttp 是否也有办法为每个请求启用日志。

最佳答案

使用 Interceptor,您可以定义以下类:

class LoggingInterceptor implements Interceptor {
  @Override public Response intercept(Chain chain) throws IOException {
    Request request = chain.request();

    long t1 = System.nanoTime();
    Log.d("OkHttp", String.format("Sending request %s on %s%n%s",
        request.url(), chain.connection(), request.headers()));

    Response response = chain.proceed(request);

    long t2 = System.nanoTime();
    Log.d("OkHttp", String.format("Received response for %s in %.1fms%n%s",
        response.request().url(), (t2 - t1) / 1e6d, response.headers()));

    return response;
  }
}

并添加它:

OkHttpClient client = new OkHttpClient.Builder()
  .addInterceptor(new LoggingInterceptor())
  .build();

关于android - OkHttp - 启用日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952199/

相关文章:

java - 执行 LEFT_RIGHT 滑动菜单时的奇怪行为

java - 并行动画 View

web-services - 什么是 RESTful api 以及它与 Web 服务的区别?

arrays - 未定义的 Angular 日历异步 http 'map'

http - 部分应用程序的 Scalatra 基本身份验证

java - Spring:Tomcat 响应中的 HTTP 状态 406

android - 如果 Activity 布局更改,配置更改后恢复 Fragment 状态

android - 为什么我无法在 android studio 3.1.0 中构建?

.net - WS 安全 header 无效 - IRS ACA SOAP 请求

c# - 如何使用 IAsyncResult 从 WCF 异步中的回调中抛出异常