使用restTemplate调用其他服务

使用restTemplate调用其他微服务的相关问题

1.调用接口报feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter found for response type and content type [application/atom+xml;charset=UTF-8]

是项目配置默认采用xml形式去调用其他服务,被调用服务无法解析参数报错,需要在调用的时候加上header,指定是用json传参。

2.restTemplate自动注入,下面是红线。

需要在启动类自定义一下restTemplate,打上@Bean和@LoadBalanced标签
具体代码如下吧,请参考使用。
下面展示一些 内联代码片

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.build();
    }
    String requestUrl = String.format("http://%s/%s", para.applicationName, para.serviceName);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
    HttpEntity<String> request = new HttpEntity<>(para.createPara, headers);
    return restTemplate.postForEntity(requestUrl, request, String.class).getBody();

这样就可以调用其他微服务了。


版权声明:本文为weixin_47303690原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。