OKHttp的原理及源码查看器实现:
okhttp概念: 用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)
作用:减少对服务器的请求次数,减少请求延迟,减少数据流量,缓存响应数据来减少重复的网络请求,自动处理GZip压缩,客户端不管是使用 HttpClient 还是 OkHttp 都可以在请求头里加上 gzip 属性,加上该属性后会自动使用 gzip 压缩发送数据。
1. get请求
2. post请求
3. 基于Http的文件上传
4. 文件下载
5. 加载图片(内部会根据imageview的大小自动对图片进行合适的压缩。虽然不适合一次性加载大量图片的场景,但是对于app中偶尔有几个图片的加载,还是可用的)
6. 支持请求回调,直接返回对象、对象集合
7. 支持session的保持
OKhttp下载地址:https://github.com/hongyangAndroid/okhttp-utils
Android Studio的用户:
使用Studio的图形管理进行添加.(注意:okhttp有2.0版本和3.0以后的版本,这两个版本有的方法使用上有些许的不同)
Eclipse的用户:
可以下载最新的jar okhttp he latest JAR ,添加依赖就可以用了。
最新的jar地址:okio the latest JAR
注意:okhttp内部依赖okio,别忘了同时导入okio:
注意:使用网络在清单文件添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
使用:
(一)Http Get的使用步骤:
对了网络加载库,最常见的是http get请求了,比如获取一个网页的内容。
01.创建OkHttpClient对象,并设置连接超时时间(读取的可写可不写)
OkHttpClient mOkHttpClient=new OkHttpClient();
注意
:这种设置超时时间是OKhttp2.0特有的通过方法来进行设置
mOkHttpClient.setConnectTimeout(10, TimeUnit.SECONDS);
mOkHttpClient.setReadTimeout(10,TimeUnit.SECONDS);
mOkHttpClient.setWriteTimeout(10,TimeUnit.SECONDS);
提示
:设置超时时间在OKhttp3.0以后,使用build的方式进行
Ok