1. 程式人生 > >微服務中的rpc 請求寫法

微服務中的rpc 請求寫法

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 請求寫法