浅谈springboot 中如何通过restTemplate发送带有header和token的网络请求

最近在进行第三方接口对接,在对接过程中要用到大量的restTemplate的使用,个人觉得restTemplate装载带token的header发送网络请求是很重要的一个知识点,我在这里简单记录下:

第一步,注入TestRestTemplate:

1
2
3
@Autowired
  private TestRestTemplate testRestTemplate;
  private RestTemplate restTemplate;

  

第二步,初始化restTemplate:
1
restTemplate = testRestTemplate.getRestTemplate();

 第三步,填充header,将token信息和content-type写入header中,没有content-type读取时是也会报错的:

 HttpHeaders headers = new HttpHeaders();
 headers.add("Authorization", stringRedisTemplate.opsForValue().get("token"));
headers.add("Content-Type", "application/json");

第四步,填装数据,这里的数据用json的方式发送,也可以用其它方式,比如string:

1
2
3
4
5
6
7
JSONObject para = new JSONObject();
        para.put("StartTime", param.get("startTime"));
        para.put("EndTime", param.get("endTime"));
        para.put("AlarmType", param.get("alarmType"));
        para.put("AlarmDesc", param.get("alarmDesc"));
        para.put("QueryType", param.get("queryType"));
        para.put("QueryKey", param.get("queryKey"));di

第五步,发送请求给第三方并获得数据:

1
2
3
4
5
6
7
8
HttpEntity<String> formEntity = new HttpEntity<String>(para.toJSONString(), headers);
      ResponseEntity<String> response = restTemplate.exchange(
          URL,//获取资源的地址
          HttpMethod.POST,
          formEntity,
          String.class//返回类型设为String
      );
      String body = response.getBody();

  这样就实现了带header的消息发送。

posted @   HexThinking  阅读(6127)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示