okHttp的使用
来源:互联网 发布:淘宝卖家后台官网 编辑:程序博客网 时间:2024/06/05 10:01
okHttp的使用
优势
- 谷歌官方在6.0以后在android sdk已经移除了httpClient,加入我们okHttp
- 支持
SPDY
,允许连接同一主机的所有请求分享一个socket。 如果SPDY不可用,会使用连接池减少请求延迟。 使用GZIP压缩下载内容
,且压缩操作对用户是透明的。 利用响应缓存来避免重复的网络请求
。 当网络出现问题的时候,OKHttp会依然有效,它将从常见的连接问题当中恢复。 如果你的服务端有多个IP地址,当第一个地址连接失败时,OKHttp会尝试连接其他的地址
,这对IPV4和IPV6以及寄宿在多个数据中心的服务而言,是非常有必要的。
因此使用 OkHttp 作为替代是好的选择.
SPDY
SPDY(读作“SPeeDY”)是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。SPDY并不是一种用于替代HTTP的协议,而是对HTTP协议的增强
如何用
依赖方式
gradle中加入`compile 'com.squareup.okhttp:okhttp:2.6.0'`即可
离线的方式
通过maven仓库搜索下载okhttp.jar和okio.jar使用
get请求
同步的请求
//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.发起请求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 { //请求失败 }});
参数的拼接
public static String getUrlParamsByMap(Map<String, Object> map) { if (map == null) { return ""; } StringBuffer sb = new StringBuffer(); for (Map.Entry<String, Object> entry : map.entrySet()) { sb.append(entry.getKey() + "=" + entry.getValue()); sb.append("&"); } String s = sb.toString(); if (s.endsWith("&")) { s = s.substring(0, s.length() - 1); } return s;}
阅读全文
0 0
- OkHttp的使用介绍
- OkHttp的简单使用
- OKHttp的简单使用
- android OkHttp的使用
- OkHttp的使用
- OkHttp的使用教程
- OkHttp的使用
- OkHttp的使用
- 高效的使用okhttp
- OkHttp的使用
- okhttp 的使用
- okhttp的第一次使用
- 关于OkHttp的使用
- okhttp的使用
- okhttp框架的使用
- OkHttp的使用
- okhttp的使用
- OKHttp的简单使用
- NOIP2015 Day 1 T3 斗地主
- Activity以singleTask模式启动,intent传值的解决办法
- LeetCode
- OpenCV之VideoCapture的使用——打开网络摄像头/图像序列
- FAQ页面设计
- okHttp的使用
- 百度2017春招笔试真题编程题集合
- L
- 本地项目提交到SVN
- Mysql Int、Datetime 和 Timestamp 时区相关性分析
- Lucene的配置与使用
- aria2 破解百度云限速
- 新入手一个新系统,如何重构和梳理
- 常用的js表单验证