使用OkHttp高效開發除錯

2021-08-13 18:03:06 字數 3698 閱讀 5503

本文使用的okhttp版本是okhttp3,使用okhttp2的情況稍有不同,使用okhttp2的同學替換為okhttp3也不麻煩,api都很接近;當然,如果想要使用okhttp2使用stetho & ***也是可以的,可以參考官方文件。

先貼出gradle依賴,基本上我使用的都是最新版本的庫。

* 全域性統一使用的okhttpclient工具,okhttp版本:okhttp3

在所有需要用到okhttpclient的地方使用以下**,全域性使用同乙個okhttpclient例項:

okhttpclient okhttpclient = okhttputils.getinstance().getokhttpclient();
全域性使用乙個okhttpclient的原因是所有請求沒必要建立多個請求客戶端例項,乙個好處是節省記憶體,另外乙個是全域性設定了一些監控工具,如facebook的stetho 和 okhttp自帶的httplogginginterceptor,你就可以監管你的所有http請求。

//包含header、body資料

//在build okhttpclient的時候加入log***

okhttp3***log列印.png

在例項化你的httplogginginterceptor的時候傳入乙個logger引數,可以定製化okhttp輸出的格式化http請求體&響應體log。

3.1 在build okhttpclient時需要新增網路***okhttpclient.builder().addnetworkinterceptor(new stethointerceptor())//facebook偵錯程式,可在chrome除錯網路請求,檢視sharepreferences,資料庫等

stetho.initializewithdefaults(this);

3.3 連線手機,在chrome中開啟chome://inspect/#devices

chrome://inspect/#devices.png

3.4 檢視網路請求

請求概覽

http響應body

3.5檢視資料庫

檢視資料庫

當你與服務端對接的時候,當服務端功能還沒開發完成,而你等待著伺服器的介面測試時,自定義***就可以幫你無需等待服務端完成功能先進行開發。

步驟:1)先與服務端協商介面返回資料格式,拿到協商的資料,寫一些假資料,每個介面對應建立乙個json文字檔案,裡面放介面定義的資料。

資料檔案,服務端同學提供測試資料.png

2)自定義***

/** * 自定義okhttp***,可定製介面偽造http響應資料 */

public final class mockdataapiinterceptor implements interceptor return response;

}/**

* 測試環境下攔截需要的介面請求,偽造資料返回

** @param chain ***鏈

* @param path 請求的路徑path

* @return 偽造的請求response,有可能為null

*/private response interceptrequestwhendebug(chain chain, string path) else if (path.startswith("/api/event/"))

}return response;

}/**

* 偽造活動詳情介面響應

** @param request 使用者的請求

* @return 偽造的活動詳情http響應

*/private response getmockeventdetailresponse(request request)

/*** 偽造活動列表介面響應

** @param request 使用者的請求

* @return 偽造的活動列表http響應

*/private response getmockeventlistresponse(request request)

/*** 根據資料json字串構造http響應,在json資料不為空的情況下返回200響應,否則返回500響應

** @param request 使用者的請求

* @param datajson 響應資料,json格式

* @return 構造的http響應

介面返回什麼資料都由你自己定義,即使是http的響應碼等。這裡的響應body我們使用服務端同學給我們提供的json檔案3)在build okhttpclient時新增自定義***

okhttpclient.builder().addinterceptor(new mockdataapiinterceptor())
4)進行開發,完善資料解析邏輯等,與view結合等。

android開發 使用okhttp上傳檔案

android buildtypes sourcesets dependencies 在介面上新增乙個按鈕,以及乙個可滾動顯示返回值的文字元件。設定訪問服務端ip var serverip 192.168.1.105 在oncreate方法內新增按鈕操作 post方式上傳檔案 sd卡跟路徑image...

使用attr高效除錯驅動

檔案中 struct kobject kobj define attr name static struct kobj attribute name attr show name show,store name store,檔案中 state show是驅動除錯的讀函式 buf是除錯的資料互動口當執...

android開發之OkHttp上傳byte陣列

okhttp的 get post postfile網上都有,我就不贅述了 這裡講一下網上找不到的,okhttp上傳byte 經過觀察我發現了這個 看到這個大家就明白了,okhttp的檔案上傳操作就受到這裡控制的,writeto這個方法就是向服務端寫入byte資料用的,看文章裡面的 可用看出來,這裡的...