Spring boot中使用Retrofit攔截器增加日志打印功能
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)?
? 作者?|? 六層樓
來源 |? urlify.cn/jIvAna
66套java從入門到精通實(shí)戰(zhàn)課程分享
目前存在的問題
Retrofit是個(gè)封裝良好的基于OKHTTP的框架,我們可以方便的使用Retrofit來調(diào)用API。那么應(yīng)該如何優(yōu)雅的使用Retrofit來調(diào)用API呢?
一、Retrofit如何添加攔截器
Retrofit本身不能添加攔截器,但是OKHTTP客戶端是可以添加攔截器的。那么我們只需要先定義一個(gè)OKHTTP客戶端,然后在創(chuàng)建Retrofit的時(shí)候把客戶端加進(jìn)去就可以了
???Retrofit?retrofit?=?new?Retrofit.Builder()
????????????????.baseUrl(resSyncConfig.getUrl())
????????????????.client(getClient().build())
????????????????.addConverterFactory(GsonConverterFactory.create())
????????????????.build();
二、添加攔截器代碼
上面提到,我們需要在OkHttp客戶端里面添加攔截器,來實(shí)現(xiàn)打印日志的功能。
????/**
?????*?獲取OKHttp客戶端,用于為Retrofit添加攔截器
?????*
?????*?@return?OKHttp客戶端
?????*/
????private?OkHttpClient.Builder?getClient()?{
????????OkHttpClient.Builder?httpClientBuilder?=?new?OkHttpClient.Builder();
????????httpClientBuilder.addNetworkInterceptor(chain?->?{
????????????Request?original?=?chain.request();
????????????log.info("{},headers:{}",?original.toString(),?original.headers());
????????????return?chain.proceed(original);
????????});
????????return?httpClientBuilder;
????}
粉絲福利:Java從入門到入土學(xué)習(xí)路線圖
???

?長按上方微信二維碼?2 秒
感謝點(diǎn)贊支持下哈?
評(píng)論
圖片
表情
