一、前言
之前给大家介绍过HttpClient、Feign,都能帮助我们处理http/https协议,且各有优劣。
今天再给大家介绍一款—OKHttp。
二、OKHttp简介
1、允许连接到同一个主机地址的所有请求,提高请求效率
2、共享Socket,减少对服务器的请求次数
3、通过连接池,减少了请求延迟
4、缓存响应数据来减少重复的网络请求
5、减少了对数据流量的消耗
6、自动处理GZip压缩
7、对android更友好
三、代码
坐标
OKHttp的代码相对于HttpClient和Feign个人感觉会更加简单一些。
上述代码中,OkHttpClient 是一个客户端对象主要用来发送http请求的。Request是一个请求对象,但是得到它可不容易,我们慢慢来分析下。
首先是new Request.Builder()创建的是Builder构建对象,Builder是专门拥有构造request的一个类。接着调用url方法传入url地址加上参数,接着调用method请求方式get(),当然也可以是post()等其他请求方式。
那么目前为止已经确定好url和method,如果没有参数或者请求其实就可以结束了调用build()返回request对象。
最后通过client客户端的newCall方法传入request然后执行。请求发送完毕并且得到response响应对象。
纵观整个代码结构你就会发现,使用链式编程一套下来你接触到的类很少,并且调用的方法都见名知意,这对于广大编写http请求的同学来说是个福音。
再也不用记忆哪些该死的类名,剩下的只有那些和http协议相关的方法了。
接下来我们再来看看post请求,这段代码相对于上面的多了请求头、请求体以及响应内容的获取。
代码中MediaType是请求参数的格式类型,RequestBody是请求体对象,当我们使用post请求时想要设置参数就可以使用RequestBody设置mediaType和参数。
response对象中通过body()获取请求体所有的内容,code()获取状态码,headers()获取所有响应头对象。
OK,通过上面两段代码可以看出OKHttp代码还是非常简洁的,同学们可以动起手来试试哦~
本文由柠檬班罗杰老师原创,转载需注明出处!
领取专属 10元无门槛券
私享最新 技术干货