retrofit2.0使用拦截器Interceptor统一打印请求与响应的json

xiaoxiao2021-02-28  112

先添加依赖: compile ‘com.squareup.retrofit2:retrofit:2.1.0’ compile ‘com.squareup.retrofit2:converter-gson:2.1.0’ compile ‘com.squareup.okhttp3:logging-interceptor:3.1.2’

二:okhttp已经为我们提供了一个Interceptor的实现类:HttpLoggingInterceptor。只要稍作设置就可以:

HttpLoggingInterceptor logging = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { // Timber.tag("OkHttp").d(message); // Logger.e("okhttp",message); Log.e("okhttp",message); } }); logging.setLevel(HttpLoggingInterceptor.Level.BODY);//Level中还有其他等级 OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(logging) .build();

三:使用

Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.douban.com/v2/") .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().create())) .client(client)//添加上面设置好的OkHttpClient .build();

下面是请求的代码:

RetrofitService service = retrofit.create(RetrofitService.class); Call<Book> call = service.getSearchBook("金瓶梅", null, 0, 1); call.enqueue(new Callback<Book>() { @Override public void onResponse(Call<Book> call, Response<Book> response) { button.setText(response.body()+""); // Log.e("Json",""+response.body().toString()); } @Override public void onFailure(Call<Book> call, Throwable t) { } });

接下我们查看日志:

转载请注明原文地址: https://www.6miu.com/read-24921.html

最新回复(0)