您的位置:首页 > Web前端 > JavaScript

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

2017-08-31 10:51 459 查看
先添加依赖:

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) {
}
});


接下我们查看日志:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: