淺談springboot 中如何通過restTemplate傳送帶有header和token的網路請求
阿新 • • 發佈:2020-08-25
最近在進行第三方介面對接,在對接過程中要用到大量的restTemplate的使用,個人覺得restTemplate裝載帶token的header傳送網路請求是很重要的一個知識點,我在這裡簡單記錄下:
第一步,注入TestRestTemplate:
@Autowired private TestRestTemplate testRestTemplate; private RestTemplate restTemplate;
第二步,初始化restTemplate:
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:
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
第五步,傳送請求給第三方並獲得資料:
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的訊息傳送。