# 微服务模块之间接口调用方式(RestTemplate )

微服务模块之间接口调用方式(RestTemplate )

  • RestTemplate 是org.springframework.web.client包下面的类,可以实现Post、Get等请求
配置类,配置RestTemplate Bean
@Configuration
public class RestTemplateConfig {
 
    /**
     * 使用LoadBlanced 可以用Eruake 中注册的服务名调用
     **/
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        return new RestTemplate(factory);
    }
 
    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setReadTimeout(5000);//单位为ms
        factory.setConnectTimeout(5000);//单位为ms
        return factory;
    }
 
}
注入RestTemplate 使用RestTemplate 调用接口
  • Url格式:http://Eruake注册的服务名/接口地址
@RequestMapping("/test2")
public void test2(){
    try {
        // 调用的接口地址
        String url = "http://oscoreserver/test/test1";
        // 传的参数
        Map<String, Object> parameters = new HashMap<>(4);
        parameters.put("grant_type", "client_credential");
        // 接口返回的内容
        Object object = restTemplate.postForObject(url, parameters, String.class);
        System.out.println(object);
    }catch (Exception e){
        logger.info(e.getMessage());
        e.printStackTrace();
    }
}
RestTemplate Post请求
  • 使用postForObject请求接口
String url = "http://oscoreserver/test/test1";
Map<String, Object> parameters = new HashMap<>(4);
parameters.put("tagid", "6666");
Object object = restTemplate.postForObject(url, parameters, String.class);
  • postForObject()
public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables) throws RestClientException {}
public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Map<String, ?> uriVariables)  throws RestClientException {}
public <T> T postForObject(URI url, @Nullable Object request, Class<T> responseType) throws RestClientException {}
  • postForEntity()
<T> ResponseEntity<T> postForEntity(String var1, @Nullable Object var2, Class<T> var3, Object... var4) throws RestClientException;
<T> ResponseEntity<T> postForEntity(String var1, @Nullable Object var2, Class<T> var3, Map<String, ?> var4) throws RestClientException;
<T> ResponseEntity<T> postForEntity(URI var1, @Nullable Object var2, Class<T> var3) throws RestClientException;
RestTemplate Get请求
  • 使用getForObject请求接口
Map<String, Object> parameters = new HashMap<>(4);
parameters.put("tagid", "6666");
String result1 = restTemplate.getForObject(url, String.class, paramMap);
System.out.println("result1====================" + result1);
  • getForObject()
public <T> T getForObject(String url, Class<T> responseType, Object... uriVariables){}
public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables)
public <T> T getForObject(URI url, Class<T> responseType)
  • getForEntity()
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... uriVariables){}
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables){}
public <T> ResponseEntity<T> getForEntity(URI url, Class<T> responseType){}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值