Android老版本網(wǎng)絡(luò)請求:
HttpUrlConnection
Apache Http Client
Android6.0版本網(wǎng)絡(luò)請求:
HttpUrlConnection
OkHttp
新版本廢棄了老的網(wǎng)絡(luò)請求亩钟,那么它的優(yōu)勢是什么呢举娩?
1,支持SPDY,共享同一個Socket來處理同一個服務(wù)器的所有請求
2,如果SPDY不可用,則通過連接池來減少請求延時
3,無縫的支持GZIP來減少數(shù)據(jù)流量
4广恢,緩存響應(yīng)數(shù)據(jù)來減少重復(fù)的網(wǎng)絡(luò)請求
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//開啟一個線程,做聯(lián)網(wǎng)操作
new Thread() {
@Override
public void run() {
get();
}
}.start();
}
private void get() {
OkHttpClient okHttpClient = new OkHttpClient();
//構(gòu)建一個請求對象
Request request = new Request.Builder().url("http//wthrcdn.etouch.cn/weather_mini?citykey=101010100").build();
//發(fā)送請求
try {
Response response = okHttpClient.newCall(request).execute();
//打印服務(wù)端傳回的數(shù)據(jù)
Log.i(TAG, response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}
SPDY(讀作“SPeeDY”)是Google開發(fā)的基于TCP的應(yīng)用層協(xié)議呀潭,用以最小化網(wǎng)絡(luò)延遲钉迷,提升網(wǎng)絡(luò)速度至非,優(yōu)化用戶的網(wǎng)絡(luò)使用體驗。SPDY并不是一種用于替代HTTP的協(xié)議糠聪,而是對HTTP協(xié)議的增強(qiáng)荒椭。新協(xié)議的功能包括數(shù)據(jù)流的多路復(fù)用、請求優(yōu)先級以及HTTP報頭壓縮舰蟆。谷歌表示趣惠,引入SPDY協(xié)議后,在實驗室測試中頁面加載速度比原先快64%身害。
ZIP最早由Jean-loup Gailly和Mark Adler創(chuàng)建味悄,用于UNⅨ系統(tǒng)的文件壓縮。我們在Linux中經(jīng)常會用到后綴為.gz的文件塌鸯,它們就是GZIP格式的∈躺現(xiàn)今已經(jīng)成為Internet 上使用非常普遍的一種數(shù)據(jù)壓縮格式,或者說一種文件格式丙猬。
HTTP協(xié)議上的GZIP編碼是一種用來改進(jìn)WEB應(yīng)用程序性能的技術(shù)涨颜。大流量的WEB站點常常使用GZIP壓縮技術(shù)來讓用戶感受更快的速度。這一般是指WWW服務(wù)器中安裝的一個功能茧球,當(dāng)有人來訪問這個服務(wù)器中的網(wǎng)站時庭瑰,服務(wù)器中的這個功能就將網(wǎng)頁內(nèi)容壓縮后傳輸?shù)絹碓L的電腦瀏覽器中顯示出來.一般對純文本內(nèi)容可壓縮到原大小的40%.這樣傳輸就快了,效果就是你點擊網(wǎng)址后會很快的顯示出來.當(dāng)然這也會增加服務(wù)器的負(fù)載. 一般服務(wù)器中都安裝有這個功能模塊的抢埋。