CALL
request
每一個(gè)請(qǐng)求包含Url,請(qǐng)求類(lèi)型(get,post),header。
還可以包含一個(gè)body,可以上傳文件。
response
包含一個(gè)Http code,header,body
重寫(xiě)請(qǐng)求(簽名,添加header)
重寫(xiě)響應(yīng)(json解析)
重定向請(qǐng)求(server 302,自動(dòng)重定向獲取最終請(qǐng)求結(jié)果)
重試請(qǐng)求(配置請(qǐng)求錯(cuò)誤重試次數(shù),可配置不同的請(qǐng)求路徑)
call
同步請(qǐng)求
異步請(qǐng)求
請(qǐng)求取消(可以在任何線程取消請(qǐng)求,此時(shí)正在發(fā)送請(qǐng)求或者正在讀響應(yīng),請(qǐng)求會(huì)拋出IO異常)
Interceptor
應(yīng)用攔截器
不需要擔(dān)心中間過(guò)程的響應(yīng),如重定向和重試.
總是只調(diào)用一次,即使HTTP響應(yīng)是從緩存中獲取.
觀察應(yīng)用程序的初衷. 不關(guān)心OkHttp注入的頭信息如:If-None-Match.
允許短路而不調(diào)用Chain.proceed(),即中止調(diào)用.
允許重試,使Chain.proceed()調(diào)用多次.
網(wǎng)絡(luò)攔截器
能夠操作中間過(guò)程的響應(yīng),如重定向和重試.
當(dāng)網(wǎng)絡(luò)短路而返回緩存響應(yīng)時(shí)不被調(diào)用.
只觀察在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù).
攜帶請(qǐng)求來(lái)訪問(wèn)連接.