在使用retrofit時,如果我們需要列印網路請求的日誌(諸如請求位址,引數,耗時,請求返回結果),
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
在使用時,新增如下**:
這樣在我們的網路請求中便會有如下日誌列印。//宣告日誌類
//設定日誌級別
//自定義okhttpclient
//新增***
//建立並指定自定義的okhttpclient
//建立介面服務類
taobaoapiservice taobaoapiservice = retrofit.create(taobaoapiservice.class);
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: --> get
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: --> end get
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: <-- 200 ok
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: server: tengine
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: date: fri, 24 jun 2016
07:31:03 gmt
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: content-type: text/html
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: transfer-encoding: chunked
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: connection: keep-alive
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: vary: accept-encoding
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: x-powered-by: php/5.4
.31六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊:
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: }
六月 24, 2016
3:31:04 下午 okhttp3.internal
.platform log
資訊: <-- end http (290-byte body)
如果列印的資料不符合要求,我們自定義列印資訊的內容和格式這裡我們使用乙個自定的,具體**大致如下:
//列印請求耗時
syso("耗時:"+tookms+"ms");
//使用response獲得headers(),可以更新本地cookie。
syso("headers**********");
headers headers = response.headers();
syso(headers.tostring());
//獲得返回的body,注意此處不要使用responsebody.string()獲取返回資料,原因在於這個方法會消耗返回結果的資料(buffer)
responsebody responsebody = response.body();
//為了不消耗buffer,我們這裡使用source先獲得buffer物件,然後clone()後使用
bufferedsource source = responsebody.source();
source.request(long.max_value); // buffer the entire body.
//獲得返回的資料
buffer buffer = source.buffer();
//使用前clone()下,避免直接消耗
syso("response:" + buffer.clone().readstring(charset.forname("utf-8")));
return response;
}});**說明已新增注釋。需要額外說明一點就是syso函式只是做簡單列印,如下:
private
static
void
syso(string msg)
Retrofit2對https請求的實現(乾貨)
由於專案上傳到googleplay時被提醒傳輸資料方式不安全,故改用https加密傳輸。這裡我的專案裡用到retrofit2.2.0,但retrofit本身的okhttp不能直接請求證書不安全的https,所以得採取一些應急措施。首先我們在androidstudio裡的gradle依賴retrofi...
使用Retrofit2進行HTTP請求設定請求超時
採用retrofit2本身可以進行優雅的restful請求,但是無法設定請求超時時間,需要配合okhttp3來設定請求超時.新增依賴 compile com.squareup.okhttp3 logging interceptor 3.0.1 新增配置資訊並設定超時時間 connecttimeout...
No 2 列印沙漏
題目要求 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相鄰兩行符號數差2 符號數先從大到小順序遞減到1,再從小到大順序遞增 首尾符號數相等。給定任意n個符號,不一定能正好組成乙個沙漏。要求列印出的沙漏能...