在 Retrofit 2 中记录请求和响应
与前身相比,Retrofit 2 引入了记录请求和响应的新策略。以下指南可帮助您在 Retrofit 2 应用程序中实现正确的日志记录:
使用 HttpLoggingInterceptor
而不是现已弃用的 setLog() 和 setLogLevel() 方法, Retrofit 2 使用 HttpLoggingInterceptor 进行全面日志记录。使用此拦截器:
添加 gradle 依赖:
implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0'
使用拦截器创建 Retrofit 对象配置:
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_URL) .client(client) .addConverterFactory(GsonConverterFactory.create()) .build();
输出
上述解决方案产生类似于生成的 logcat 消息with:
setLogLevel(RestAdapter.LogLevel.FULL)
故障排除
已弃用的日志记录级别:如果您使用 Java 7 或 8,您可能会看到与已弃用的日志记录级别相关的警告。要解决此问题,请使用以下语法:
interceptor.level(HttpLoggingInterceptor.Level.BODY);
以上是如何有效记录 Retrofit 2 请求和响应?的详细内容。更多信息请关注PHP中文网其他相关文章!