微服務中的rpc 請求寫法
阿新 • • 發佈:2018-07-31
ref true reference result bject zed div urn .class
1、采用restmplate 的postForObject
RestTemplate template = new RestTemplate();
HttpEntity<List<Map<String, Object>>> request = new HttpEntity<>(paramList, this.getHeaders());
Map map = template.postForObject(url, request, Map.class);
url: 對外發送請求的url地址
request:請求的參數,帶請求頭。比如這裏是參數類型是一個 List<Map<String, Object>>
map.class : 請求返回值的類型 這裏返回值為一個map
2、如果傳入的參數 param是json對象,postForObject 有時候會報錯,此處的docVo 為json對象;
同時,返回值 不是簡單的map,list類型,而是對象,則此時需要用到另外一個方法ParameterizedTypeReference 來創建一個返回值包裝對象
typeRef = new ParameterizedTypeReference<BaseResultVo<PageDataVo<DocBrowseRankVo>>>() {};
3 、調用 restTemplate.exchange(requestUrl, HttpMethod.POST, request, typeRef);
HttpEntity<DocVo> request = new HttpEntity<>(docyVo, Common.getHeaders()); ParameterizedTypeReference<BaseResultVo<PageDataVo<DocBrowseRankVo>> > typeRef = new ParameterizedTypeReference<BaseResultVo<PageDataVo<DocBrowseRankVo>>>() {}; ResponseEntity<BaseResultVo<PageDataVo<DocBrowseRankVo>>> responseEntity = restTemplate.exchange(requestUrl, HttpMethod.POST, request, typeRef); return responseEntity.getBody();
微服務中的rpc 請求寫法