温故而知新,系统整理一下。
Okhttp
第一点:谷歌官方在6.0以后在Android sdk已经移除了httpClient,加入我们okHttp.
第二点:okHttp支持SPDY(是谷歌开发的基于TCP的应用层协议,用于最小化网络延迟,提升网络速度,优化用户的网络使用体验. SPDY并不是一种替代http的协议,只是对http的一种增强.)允许连接在一主机的所有请求分享一个socket.如果SPDY不可用.会使用连接池来减少请求延迟.利用响应缓存来避免重复的网络请求.即便是网络出现问题时,okhttp依然起作用.它将从常见的链接问题当中回复.如果你的服务器有多个IP地址,当地一个失败时,okhttp会自动尝试连接其他的地址.这对于IPV4和IPV6以及寄宿在多个数据中心的服务而言,是非常有必要的,所以okhttp的稳定性可以说是非常棒的.第一点:谷歌官方在6.0以后在android 打开已经移除了httpClient 加入了okHttp.
第三点:使用方式:
最常使用的get请求 同步请求:
//1.创建OkHttpClient实例对象
OkHttpClient okHttpClient = new OkHttpClient();
String url = Constants.URLS.BASEURL + "home?index=0";
//2.创建一个请求
Request request = new Request.Builder()
.get()//get方法
.url(url)//对应的url
.build();
//3.发起请求
Response response = okHttpClient.newCall(request).execute();
//4.取出结果
String resultJsonString = response.body().string();
异步的请求:
//1.创建OkHttpClient实例对象
OkHttpClient okHttpClient = new OkHttpClient();
//home
// ?index=0==>参数
String url = Constants.URLS.BASEURL + "home?index=0";
//2.创建一个请求
Request request = new Request.Builder()
.get()//get方法
.url(url)//对应的url
.build();
//3.发起请求
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
//请求成功
}
@Override
public void onResponse(Response response) throws IOException {
//请求失败
}
});
Retrofit2
------相关资料推荐
okHttp使用及其优势
okHttp使用教程
OKHttp源码解析
Retrofit2与RxJava用法大全
2016移动新技术预览,Retrofit为何这么久才火
快速Android开发系列网络篇之Retrofit
【Android】Android2.3版本以上谷歌为何推荐使用HttpURLConnection却弃用 Apache HttpClient