在移动端开发时,我们常常需要像web端一样可以方便地查看我们向服务器发送请求的报文详细日志(如请求地址,请求参数,请求类型,服务器响应的耗时时间,请求返回的结果等等)。
使用Retrofit2时,如果我们需要打印上述的网络请求的日志,可以采用日志拦截器的方案得以实现。
1.导入网络库和日志库
我这里采用的是Rxjava +Retrofit
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
compile('com.github.ihsanbal:LoggingInterceptor:2.0.5') {
exclude group: 'org.json', module: 'json'
}
(注意:如果采用的是okhttp官方的com.squareup.okhttp3:logging-interceptor日志库,可能会遇到以下两个问题:部分机型无法正常打印网络日志;当两个api调用时间非常接近是,两个请求的打印日志会混乱,并且当返回数据过多时,日志打印不完整)
2. 关键代码如下:
OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(