前言Http是最常见的请求协议,每一种编程语言都可以发送Http请求。Java作为经典的编程语言之一,有很多发送Http请求的客户端。内置的有Java11之后的java.net.HttpURLConnection和java.net.http.HttpClient。在Java11之前,HttpURLConnection很难用,所以市场上出现了很多优秀的开源作品,典型代表有:ApacheHttpClient(现在最新的是HttpComponent5.x)OkHttp(现在最新的是OkHttp4.x)作为老牌的ApacheHttpClient,凭借其各种优秀的特性,似乎已经成为了事实上的标准;后起之秀OkHttp在没有历史包袱的道路上轻装上阵,拥有低网络延迟和更好的连接池性能,也是一股不容小觑的力量。Spring在不到万不得已的时候,一般不会自己重新造轮子。在Http客户端,我们也发挥自己的优势,提供了统一的Http调用方法RestTemplate,屏蔽了细节,规范了开发者的使用,简化了开发门槛。PS:RestTemplate的底层实现还是ApacheHttpClient、OkHttp、HttpURLConnection不止一种,它们仍然是程序化的Http客户端。随着SpringBoot的流行和SpringCloud的出现,声明式编码越来越成为主流,因为声明式/面向元数据的编码比编程式编码要高效得多。于是,Feign应运而生,并迅速成为主流。今年,随着SpringFramework6、SpringBoot3、SpringCloud2022.0.0划时代版本的发布,Spring团队构建了一套声明式Http客户端:@HttpExchange,面向OpenFeign。全新的声明式Http客户端由SpringFramework6定义,由SpringBoot3实现,由SpringCloud2022发扬光大。今天我们就来体验和介绍一个免费的、在线的RestHttp服务。由于我们需要一个HttpServer来提供接口服务,所以我们先给大家介绍一个免费的,24小时在线的RestHttp服务,省去我们搭建的麻烦。地址:jsonplaceholder.typicode.com每月提供近20亿次请求。关键是它是免费的并且可以公开访问。它很容易使用。发送一个简单的Http请求来获取数据。URL遵循Rest规范:不选Http或Https,例如用浏览器访问这个URL得到的结果是一样的:它提供了多个Resources资源(以及多种Routes)供访问,并添加,删除、修改和检查这些资源,你想要的大部分都能得到满足。当然,如果你需要mock数据符合自己的数据结构和业务逻辑,可以在本项目的基础上进行简单的修改。良心工程。具体细节自行前往官方体验:https://jsonplaceholder.typicode.com。新增声明式Http客户端@HttpExchange环境声明:SpringBoot3.0.x本文选择“albums”资源进行测试:https://jsonplaceholder.typicode.com/albums请求结果结构如下:Feign代码示例省略!Feign的使用相信大家都很熟悉,这里就不多赘述了。@HttpExchange代码示例
