一,概述
OkHttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付公司Square贡献,用来替代HttpUrlConnection和Apache HttpClient. Apache HttpClient在android 6.0已经移除,详见官网
下面一起看下OkHttp官网的介绍
OkHttp的优点:
- 支持Http2.0, Http2.0允许相同主机地址的所有请求共享一个socket
- 如果Http2.0不可用,那么使用连接池减少开销
- 透明的GZIP压缩
- 使用缓存避免重复网络请求
- 如果服务端有多个IP地址,当第一次连接失败时,会选择其他备用的IP地址重试
- 支持同步和异步请求回调
- OkHttp支持android2.3及其以上,支持java1.7及其以上
... ...
二,项目中引入OkHttp
1,引入OkHttp jar包
下载OkHttp jar包,然后导入项目即可.
jar地址见官网内链接
2,Maven方式引入
配置如下
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.6.0</version>
</dependency>
3,Gradle方式引入
一句话引入
compile 'com.squareup.okhttp3:okhttp:3.6.0'
三,将OkHttp源码导入AS
如果我们想要比较方面的查看OkHttp的源码或者在项目中引入OkHttp需要改动定制,那么需要将OkHttp源码导入到AS中.
但是从github下载的源码有比较多的工程,以及不是android工程,导入报错. 下面介绍一个关联的方法.
1,github下载OkHttp源码
下载解压后会发现里面有很多的工程,我们只关心okhttp这个工程
2,导入OkHttp源码
1)在新建的工程里面,在创建一个名字为okhttp3的包
2)复制代码文件
将下面的源代码 ./okhttp-master/okhttp/src/main/java/okhttp3中的所有文件和文件夹都拷贝到上面新建的包中
3)导入okio
OkHttp依赖okio, 需要在gradle中添加依赖
compile 'com.squareup.okio:okio:1.11.0'
然后build即可.
如上我们就可以方面的修改和查看OkHttp的代码