本文主要是介绍Retrofit OkHttp3 打印日志 网络请求参数配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、用过Retrofit的朋友肯定知道使用Retrofit进行网络网络请求非常的方便简洁,但是要打印网络请求的日志还是要自己另想办法。昨天在网上找了一圈,发现要打印日志,大部分的帖子都是引入OkHttp3的日志库。
implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
2、通过OkHttp3 对日志和其他网络请求参数进行配置,通过下面这句进行关联
关联okhttp
new Retrofit.Builder().client(httpClient.build())
关联gson
new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson))
完整代码如下:
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();//设置日志Levelif (BuildConfig.DEBUG) {// development buildlogging.setLevel(HttpLoggingInterceptor.Level.BODY);} else {// production buildlogging.setLevel(HttpLoggingInterceptor.Level.BASIC);}OkHttpClient.Builder httpClient = new OkHttpClient.Builder().connectTimeout(15, TimeUnit.SECONDS).readTimeout(15, TimeUnit.SECONDS).writeTimeout(15, TimeUnit.SECONDS)//添加拦截器到OkHttp,这是最关键的.addInterceptor(logging);Log.w("tan","postBodyRequest");Gson gson=new Gson();//步骤4:创建Retrofit对象Retrofit retrofit = new Retrofit.Builder().baseUrl("http://XXX.XXX.X.XXX:9001/dp-bussintf/") // 设置 网络请求 Url.addConverterFactory(GsonConverterFactory.create(gson)) //设置使用Gson解析(记得加入依赖).client(httpClient.build()).build();
HttpLoggingInterceptor为我们提供了四种不同的Level,它们分别是NONE, BASIC, HEADERS, BODY
分别表示
- NONE:没有记录
- BASIC:日志请求类型,URL,请求体的大小,响应状态和响应体的大小
- HEADERS:日志请求和响应头,请求类型,URL,响应状态
- BODY:日志请求和响应标头和正文
3、自定义日志(重写 HttpLoggingInterceptor )可以参考这文章
https://blog.csdn.net/u010618194/article/details/75151960
ps:
参考文章:https://www.jianshu.com/p/8e84b827452a
这篇关于Retrofit OkHttp3 打印日志 网络请求参数配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!