使用 restTemplate 发送带有身份验证标头的 GET 请求
2022-08-31 10:22:54
我需要通过使用 RestTemplate 发送带有一些授权标头的 GET 请求来从服务器检索资源。
在浏览了文档之后,我注意到没有一个GET方法接受标头作为参数,并且发送标头(如接受和授权)的唯一方法是使用交换方法。
由于这是一个非常基本的动作,我想知道我是否错过了什么,还有另一种更简单的方法可以做到这一点?
我需要通过使用 RestTemplate 发送带有一些授权标头的 GET 请求来从服务器检索资源。
在浏览了文档之后,我注意到没有一个GET方法接受标头作为参数,并且发送标头(如接受和授权)的唯一方法是使用交换方法。
由于这是一个非常基本的动作,我想知道我是否错过了什么,还有另一种更简单的方法可以做到这一点?
可以与 一起使用。它看起来像这样:postForObject
HttpEntity
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "Bearer "+accessToken);
HttpEntity<String> entity = new HttpEntity<String>(requestJson,headers);
String result = restTemplate.postForObject(url, entity, String.class);
在 GET 请求中,您通常不会发送正文(这是允许的,但它没有任何用途)。在不以不同的方式连接 RestTemplate 的情况下添加标头的方法是直接使用 or 方法。获取速记不支持标头修改。exchange
execute
乍一看,这种不对称性有点奇怪,也许这将在Spring的未来版本中得到解决。