OkHttp介绍_以及引入_加入相应的权限
OkHttp
Github下载地址:
https://github.com/square/okhttp
android系统提供了两种HTTP通信类:HttpURLConnection和HttpClient。
Android6.0以后,Google删除了HttpClient,但是相比HttpClient来讲,HttpURLConnection要难用的多。
假如想再Android 6.0还使用HttpClient,则需要:
1. 在相应的module下的build.gradle中加入:
android {
useLibrary 'org.apache.http.legacy'
}
注意放置的位置:是在android { }中
2. 或者直接使用Jar包:org.apache.http.legacy.jar
OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp实现了。所以我们更有理由相信OkHttp的强大。
OkHttp优势:
l 支持SPDY,共享同一个Socket来处理同一个服务器的所有请求
l 如果SPDY不可用,则通过连接池来减少请求延迟
l 无缝的支持GZIP来减少数据流量
l 缓存响应数据来减少重复的网络请求
l 如果服务器端有多个IP地址,当第一个地址连接失败时,OkHttp会尝试连接其他地址
SPDY:Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。
添加OKHttp支持
在build.gradle中添加okhttp的依赖:
compile 'com.squareup.okhttp3:okhttp:3.3.1' |
OkHttp发起请求的步骤
okHttp请求步骤:
1. 获取okHttpClient实例
2. 构建Request(Request是OkHttp中访问的请求, Builder是辅助类,可选:是否传参)
3. 获取网络请求(Call)
4. 执行网络请求(同步excute or 异步enqueue)
5. 获取Response(Response即OkHttp中的响应)
OkHttp发起get请求
同步方式
同步方式发起请求,是不会开启线程的,因此就需要我们去开启一个子线程去执行网络请求,否则会报异常。
/** |