日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 请求参数打印,Android开发-----关于解决Retrofit打印HttpLog和设置连接超时的问题...

發(fā)布時(shí)間:2024/1/23 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 请求参数打印,Android开发-----关于解决Retrofit打印HttpLog和设置连接超时的问题... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題,

1 由于Retrofit默認(rèn)連接超時(shí)時(shí)間只有10s 某些情況下可能連接時(shí)間會(huì)超過10s,這個(gè)時(shí)候就會(huì)報(bào)出SocketTimeoutException 這個(gè)時(shí)候我們就需要自己設(shè)置超時(shí)間,

2 很多時(shí)候需要查看自己請(qǐng)求的網(wǎng)絡(luò)地址,或者請(qǐng)求參數(shù),當(dāng)然也可以借助抓包工具,通過OKHttp自帶的可以支持打印Log,我們?cè)诳刂婆_(tái)就可以看見請(qǐng)求信息或返回的數(shù)據(jù),也不需要另外開工具,也還是比較方便。

解決辦法

針對(duì)這2個(gè)問題寫了一個(gè)工具類僅供參考,

需要打印Http請(qǐng)求地址等信息需要添加Gradle引用

compile 'com.squareup.okhttp3:logging-interceptor:3.1.2'

Retrofit默認(rèn)支持OkHttp 所以不需要再額外添加。

工具類如下。

/**

* [description about this class]

*

* @author zhangqil

* @DATE 2017-04-11 15:21

* @copyright Copyright 2010 RD information technology Co.,ltd.. All Rights Reserved.

*/

public class RetrofitUtils {

private static RetrofitUtils mOkHttpUtils;

//解決優(yōu)化查詢超時(shí)問題 默認(rèn)10s

private static final int DEFAULT_TIMEOUT = 30; //此處默認(rèn)超時(shí)時(shí)間為30s

private TimeUnit mTimeUnitSECONDS = TimeUnit.SECONDS;

private OkHttpClient.Builder build = new OkHttpClient.Builder();

private RetrofitUtils() {

}

public static RetrofitUtils getInstance() {

if (mOkHttpUtils == null) {

mOkHttpUtils = new RetrofitUtils();

}

return mOkHttpUtils;

}

public OkHttpClient build() {

return build.build();

}

/***

* 添加超時(shí)時(shí)間

*

* @param timeOut 超時(shí)時(shí)間 單位秒

* @return

*/

public RetrofitUtils addTimeOut(int timeOut) {

if (timeOut <= 0) timeOut = DEFAULT_TIMEOUT;

build.connectTimeout(timeOut, mTimeUnitSECONDS)

.writeTimeout(timeOut, mTimeUnitSECONDS)

.readTimeout(timeOut, mTimeUnitSECONDS);

return this;

}

/***

* 添加http請(qǐng)求log 包括請(qǐng)求url 請(qǐng)求參數(shù) 返回的參數(shù) 等信息。

*

* @return

*/

public RetrofitUtils addHttpLog() {

//日志顯示級(jí)別

HttpLoggingInterceptor.Level level = HttpLoggingInterceptor.Level.BODY;

//新建log攔截器

HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {

@Override

public void log(String message) {

if (BuildConfig.DEBUG) {

Log.i("httpLog", "message:" + message);

}

}

});

loggingInterceptor.setLevel(level);

//OkHttp進(jìn)行添加攔截器loggingInterceptor

build.addInterceptor(loggingInterceptor);

return this;

}

}

如何使用:

Retrofit retrofit = new Retrofit.Builder()

.baseUrl(You BASE_URL)

.addCallAdapterFactory(RxJavaCallAdapterFactory.create()) //此處是添加Rxjava支持

.addConverterFactory(GsonConverterFactory.create())//添加Gson支持

.client(RetrofitUtils.getInstance().addTimeOut(30).addHttpLog().build()) //構(gòu)建自己的OkHttpClient

.build();

總結(jié)

以上是生活随笔為你收集整理的android 请求参数打印,Android开发-----关于解决Retrofit打印HttpLog和设置连接超时的问题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。