首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OKHttp它终究还是来了

一、前言

之前给大家介绍过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代码还是非常简洁的,同学们可以动起手来试试哦~

本文由柠檬班罗杰老师原创,转载需注明出处!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191128A0NKC200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券