okHttp的使用

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.同步的请求
//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();
2.异步的请求
//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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值