一切福田,不離方寸,從心而覓,感無不通。

Springboot HTTP Get/Post 请求讲解,Springboot几行代码完成Http请求

本文来自:https://www.sojson.com/blog/350.html

以前我们创建一个Http请求,很复杂,要写很多代码,而且请求还有各种兼容问题。而用 RestTemplate 的话优雅的几行代码就可以解决,并且是可以直接返回对象。

RestTemplate 是  Spring  用于同步请求client端的核心类,简化了与  HTTP   的通信,并满足RestFul原则,RestTemplate默认依赖  JDK  的HTTP连接工具。当然你也可以 通过setRequestFactory属性切换到不同的HTTP 数据源,比如Apache HttpComponentsNettyOkHttp,都是支持的。

HTTP Get 请求

我们先做一个普通的Http请求,直接上源码。

 

这是一个最简单的Http请求,把返回值使用   Gson   来转换成对象。

使用RestTemplate HTTP Get 请求

 

上面其实是一个简单的带参数请求,用“{1}”、“{2}”、“{3}”… 方式传参,如果是地址拼接的方式,可以N个。

上一篇博客采用这个方式,模拟的Http请求,请求天气接口数据:https://www.sojson.com/blog/349.html 。

2.RestTemplate 多个参数请求

因为是Get请求,其实就是问号的方式带参数请求

 

3.RestTemplate getForEntity 请求

其实上面的1和2算是简单的请求,就是直接返回了Object 实例对象。而我们要获取详细的详细,如返回statusHeader信息等。那就得用 getForEntity 。

看看源码里的参数描述,其实是和 getForObject 一致,我这里网络不行没下载下来源码包,凑合看看。

 

HTTP 实例讲解:

 

具体可以自行测试下。

我们看源码知道还有 Post请求 方法。

 

方法传参是和上面讲解的 Get请求 的使用方式一模一样。

有兴趣的可以测试下我们的在线 HTTP模拟请求 工具 ,就是采用 restTemplate 实现的。

HTTP在线模拟请求

 

from:https://cloud.tencent.com/developer/article/1554561