OKHttp3 基本用法
简介
- OKHttp是一个当前主流的网络请求的开源框架
- Square公司开发,用于替代HttpUrlConnection和Apache HttpClient
- Android4.4开始,google已经开始将源码中的HttpURLConnection替换为OkHttp
- Android6.0里已移除HttpClient
1.支持http和https协议,api相同,易用;
2.http使用线程池,https使用多路复用;
3.okhttp支持同步和异步调用;
4.支持普通form和文件上传form;
5.操作请求和响应(日志,请求头,body等);
6.okhttp可以设置缓存;
7.支持透明的gzip压缩响应体
Get请求
1.获取okHttpClient对象
2.构建Request对象
3.构建Call对象
4.通过Call.enqueue(callback)方法来提交异步请求;execute()方法实现同步请求
public class HttpProxy {
private Logger logger = LoggerFactory.getLogger(HttpProxy.class);
private static OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS)
.followRedirects(false).build();
public void sendGet(String finalUrl){
Request req = new Request.Builder()
.url(finalUrl)
.build();
//调用execute()方法得到同步的响应Response
try{
Response response = HttpProxy.client.newCall(req).execute();
response.body().close();
response.close();
logger.info("转发PHP:{}", finalUrl);
}catch (Exception e){
logger.info("exception e: {}",e);
}
}
}
Post请求
1.获取okHttpClient对象
2.创建RequestBody
3.构建Request对象
4.构建Call对象
5.通过Call.enqueue(callback)方法来提交异步请求;execute()方法实现同步请求
异步处理
重定向
使用OkHttp进行重定向拦截处理
https://www.jianshu.com/p/d04bfd6b6146
缓存
okhttp 缓存实践
https://www.jianshu.com/p/4550f14338db
通过CacheControl.Builder()定制自己的缓存策略
参考
OkHttp3
https://www.jianshu.com/p/9ee7b47d4f43
OKHttp3 基本用法
https://www.jianshu.com/p/16ab28d40737
使用OkHttp进行重定向拦截处理
https://www.jianshu.com/p/d04bfd6b6146
okhttp 缓存实践
https://www.jianshu.com/p/4550f14338db