什么是okhhtp?
一個(gè)處理網(wǎng)絡(luò)請(qǐng)求的開源項(xiàng)目,是安卓端最火熱的輕量級(jí)框架
OkHttp是什么,為什么要用OkHttp?
OkHttp是一個(gè)Http-client假哎,它的主要優(yōu)勢(shì):
·HTTP/2 支持允許所有訪問同一主機(jī)的請(qǐng)求共享一個(gè)socket
·利用連接池減少請(qǐng)求延遲(如果HTTP/2不可用)
·支持GZIP壓縮
·響應(yīng)緩存減少重復(fù)請(qǐng)求
1瞬捕、優(yōu)點(diǎn)
支持SPDY, 可以合并多個(gè)到同一個(gè)主機(jī)的請(qǐng),使用連接池技術(shù)減少請(qǐng)求的延遲(如果SPDY是可用的話)?舵抹,
使用GZIP壓縮減少傳輸?shù)臄?shù)據(jù)量肪虎,緩存響應(yīng)避免重復(fù)的網(wǎng)絡(luò)請(qǐng)求、攔截器等等惧蛹。
2.缺點(diǎn)
???是消息回來需要切到主線程扇救,主線程要自己去寫。
???調(diào)用比較復(fù)雜香嗓,需要自己進(jìn)行封裝爵政。
???緩存失效:網(wǎng)絡(luò)請(qǐng)求時(shí)一般都會(huì)獲取手機(jī)的一些硬件或網(wǎng)絡(luò)信息,比如使用的網(wǎng)絡(luò)環(huán)境陶缺。同時(shí)為了信息傳輸?shù)陌踩约匦赡苓€會(huì)對(duì)請(qǐng)求進(jìn)行加密。在這些情況下OkHttp的緩存系統(tǒng)就會(huì)失效了饱岸,導(dǎo)致用戶在無網(wǎng)絡(luò)情況下不能訪問緩存掺出。
緩存失效解決方案:先過濾可變參數(shù)徽千,然后進(jìn)行手動(dòng)緩存;不要使用隨網(wǎng)絡(luò)狀態(tài)變化的參數(shù)汤锨;
Retrofit是Square開源的一款適用于Android網(wǎng)絡(luò)請(qǐng)求的框架双抽。Retrofit底層是基于OkHttp實(shí)現(xiàn)的,與其他網(wǎng)絡(luò)框架不同的是闲礼,它更多使用運(yùn)行時(shí)注解的方式提供功能牍汹。