溫故而知新绕德,系統(tǒng)整理一下腾供。
Okhttp
第一點(diǎn):谷歌官方在6.0以后在Android sdk已經(jīng)移除了httpClient,加入我們okHttp.
第二點(diǎn):okHttp支持SPDY(是谷歌開發(fā)的基于TCP的應(yīng)用層協(xié)議,用于最小化網(wǎng)絡(luò)延遲,提升網(wǎng)絡(luò)速度,優(yōu)化用戶的網(wǎng)絡(luò)使用體驗(yàn). SPDY并不是一種替代http的協(xié)議,只是對(duì)http的一種增強(qiáng).)允許連接在一主機(jī)的所有請(qǐng)求分享一個(gè)socket.如果SPDY不可用.會(huì)使用連接池來減少請(qǐng)求延遲.利用響應(yīng)緩存來避免重復(fù)的網(wǎng)絡(luò)請(qǐng)求.即便是網(wǎng)絡(luò)出現(xiàn)問題時(shí),okhttp依然起作用.它將從常見的鏈接問題當(dāng)中回復(fù).如果你的服務(wù)器有多個(gè)IP地址,當(dāng)?shù)匾粋€(gè)失敗時(shí),okhttp會(huì)自動(dòng)嘗試連接其他的地址.這對(duì)于IPV4和IPV6以及寄宿在多個(gè)數(shù)據(jù)中心的服務(wù)而言,是非常有必要的,所以okhttp的穩(wěn)定性可以說是非常棒的.第一點(diǎn):谷歌官方在6.0以后在android 打開已經(jīng)移除了httpClient 加入了okHttp.
第三點(diǎn):使用方式:
最常使用的get請(qǐng)求 同步請(qǐng)求:
//1.創(chuàng)建OkHttpClient實(shí)例對(duì)象
OkHttpClient okHttpClient = new OkHttpClient();
String url = Constants.URLS.BASEURL + "home?index=0";
//2.創(chuàng)建一個(gè)請(qǐng)求
Request request = new Request.Builder()
.get()//get方法
.url(url)//對(duì)應(yīng)的url
.build();
//3.發(fā)起請(qǐng)求
Response response = okHttpClient.newCall(request).execute();
//4.取出結(jié)果
String resultJsonString = response.body().string();
異步的請(qǐng)求:
//1.創(chuàng)建OkHttpClient實(shí)例對(duì)象
OkHttpClient okHttpClient = new OkHttpClient();
//home
// ?index=0==>參數(shù)
String url = Constants.URLS.BASEURL + "home?index=0";
//2.創(chuàng)建一個(gè)請(qǐng)求
Request request = new Request.Builder()
.get()//get方法
.url(url)//對(duì)應(yīng)的url
.build();
//3.發(fā)起請(qǐng)求
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
//請(qǐng)求成功
}
@Override
public void onResponse(Response response) throws IOException {
//請(qǐng)求失敗
}
});
Retrofit2
------相關(guān)資料推薦
okHttp使用及其優(yōu)勢(shì)
okHttp使用教程
OKHttp源碼解析
Retrofit2與RxJava用法大全
2016移動(dòng)新技術(shù)預(yù)覽靴患,Retrofit為何這么久才火
快速Android開發(fā)系列網(wǎng)絡(luò)篇之Retrofit
【Android】Android2.3版本以上谷歌為何推薦使用HttpURLConnection卻棄用 Apache HttpClient