微服务中的rpc 请求写法

Posted andrew520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务中的rpc 请求写法相关的知识,希望对你有一定的参考价值。

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 请求写法的主要内容,如果未能解决你的问题,请参考以下文章

微服务学习RPC原理与Go RPC

go微服务RPC的原理与Go RPC

go微服务RPC的原理与Go RPC

go微服务RPC的原理与Go RPC

详解为什么微服务架构绕不开RPC

从源码分析微服务网关的设计