restTemplate 传递map
生活随笔
收集整理的這篇文章主要介紹了
restTemplate 传递map
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@Autowired
private RestTemplate restTemplate;
//通過restTemplate post傳遞map方法 接口返回一個int類型
public void longRangeTest(){HttpHeaders headers = new HttpHeaders();MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");headers.setContentType(type);headers.add("Accept", MediaType.APPLICATION_JSON.toString());StringBuilder url = new StringBuilder("http://localhost:8889/longRangTest");Map<String,Object> map = merge.findById("590fe009d09e9833a46185c7");map.put("_id",map.get("_id").toString());map.put("_tableName","MergeCommunity");JSONObject jsonObj = JSONObject.fromObject(map);HttpEntity<String> formEntity = new HttpEntity<>(jsonObj.toString(), headers);System.err.println("返回:"+restTemplate.postForObject(url.toString(), formEntity , int.class));
}
@Scheduled(fixedRate = 1000*3*5)@Asyncpublic void getInAndOutParkingInfoByIsAddeda() {Resp2 resp2 = parkingApiService.getInAndOutParkingInfoByIsAdded();Resp3 resp3 = new Resp3(resp2.getData());if(resp2.getData()!=null) {//把resp推送給其它接口RestTemplate restTemplate = new RestTemplate();
// String url = "http://61.150.12.244:9851/gjdd_xiongan/carParkControl/carDataRepair";String url = "http://localhost:7008/openWork/user/test4";ResponseEntity<Map> map = restTemplate.postForEntity(url, resp3, Map.class);System.out.println("message:"+map.getBody().get("message"));}}
-Post請求在RestTempalte中,對POST請求時可以通過如下三個方法進行調用--第一種:postForEntity()函數解析:該方法與Get請求中的getForEntity()函數類似,返回ResponseEntity<T>對象,其中T為請求響應的body類型。例如:RestTemplate restTemplate = new RestTempalte();User user = new User("didi", 30);ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://USER-SERVICE/user", user, String);String body = responseEntity.getBody();三個重載方法:1.postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)2.postForEntity(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)3.postForEntity(URI url, Object request, Class<T> responseType)解析:重載函數中的uriVariables用來對url中的參數進行綁定,responseType參數是對請求響應的body內容的類型定義注意:新增的request參數,改參數可以是一個普通的對象,也可以是一個HttpEntity對象。如果request是一個普通對象時,RestTemplate會將這個普通對象轉換成HttpEntity對象來處理,其中Object就是request的類型,request內容會被當成一個完整的body來處理;如果resuqet是一個HttpEntity對象時,那么request會被當成一個完整的HTTP請求對象來處理,這個request中不僅包含了body內容,也包含了header的內容--第二種:postForObject()函數解析:它簡化了postForEntity()的后續處理,通過直接將請求響應的body內容包裝陳對象來簡化返回使用。例如:RestTemplate restTemplate = new RestTemplate();User user = new User("didi", 20);String postResult = restTemplate.postForObject("http[://USER-SERVICE/user", user, String.class);三個重載方法:postForObject(String url, Object request, Class<T> responseType, Object... uriVariables)postForObject(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)postForObject(URI url, Object request, Class<T> responseType)解析:參考postForEntity說明
?
總結
以上是生活随笔為你收集整理的restTemplate 传递map的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot整合@CacheE
- 下一篇: 传统定时job特征