okHttp重點(diǎn)內(nèi)容:
okHttpClien
RealCall
request
dispatcher線程池分發(fā)執(zhí)行線程,任務(wù)池
connectionPool池連接池蜂厅,socket連接池
streamAllocation
Interceptor
Interceptor Chain
RealIntercepter Chain中Interceptor List順序:
oKHttpClient 的Interceptor:聯(lián)網(wǎng)前的中斷器
retryAndFollowupInterceptor:重試機(jī)制 际插;創(chuàng)建StreamAllocation對象厉熟,為后面流程的執(zhí)行準(zhǔn)備條件绍移;處理重定向的HTTP響應(yīng)践樱;錯誤恢復(fù)翰灾。
bridgeInterceptor:加入一些頭信息
cacheInterceptor:緩存策略
connectInterceptor:執(zhí)行連接
OKHttpClient 的 networkInterceptors:聯(lián)網(wǎng)后用戶可自定義的中斷器
callServerInterceptor:向服務(wù)器發(fā)送數(shù)據(jù)缕粹,和從服務(wù)器讀取數(shù)據(jù)
okHttp中比較精髓的地方:
1稚茅、使用裝配器即InterceptorChain,在鏈?zhǔn)椒磻?yīng)中加入自己定義的Interceptor使得在request和response階段做自己的工作
2平斩、platform:代碼實(shí)現(xiàn)可以與平臺無關(guān)亚享,platform的實(shí)現(xiàn)類來實(shí)現(xiàn)與平臺相關(guān)的一些代碼,比如log
為什么使用deque绘面?
基本使用
同步調(diào)用
Response response = mOkHttpClient.newCall(request).execute();?
異步調(diào)用
mOkHttpClient.newCall(request).enqueue(responseCallback)
詳細(xì)參考http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0106/2275.html介紹欺税。