SpringBoot 集成 RestTemplate 和使用

目录

一 RestTemplate 依赖

二 RestTemplate 装配

三 RestTemplate 使用


一 RestTemplate 依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

二 RestTemplate 装配

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory){
        return new RestTemplate(factory);
    }

    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        //客户端与服务端建立连接超时时间
        factory.setConnectTimeout(1000);
        //客户端从服务端读取数据的超时时间
        factory.setReadTimeout(2000);
        return factory;
    }
}

三 RestTemplate 使用

@Component
public class RestTemplateUtils {
    @Autowired
    private RestTemplate restTemplate;

    /**
     * 通过GET请求获取ResponseEntity对象,包容有状态码,响应头和响应数据
     * @param id
     * @return
     */
    public ResponseEntity<User> getForEntity(Long id) {
        ResponseEntity<User> responseEntity = restTemplate.getForEntity("localhost:8080/api/user/getById?id=" + id, User.class);
        return responseEntity;
    }

    /**
     * 通过GET请求获得响应结果
     * @param id
     * @return
     */
    public User getForObject(Long id) {
        User user = restTemplate.getForObject("localhost:8080/api/user/getById?id=" + id, User.class);
        return user;
    }

    /**
     * 通过POST请求获取ResponseEntity对象,包容有状态码,响应头和响应数据
     * @param user
     * @return
     */
    public ResponseEntity<String> postForEntity(User user) {
        ResponseEntity<String> responseEntity = restTemplate.postForEntity("localhost:8080/api/user/insert", user, String.class);
        return responseEntity;
    }
    

    /**
     * 通过exchange实现GET请求获取ResponseEntity对象,包容有状态码,响应头和响应数据
     * @param id
     * @return
     */
    public ResponseEntity<String> exchangeToGet(Long id) {
        ResponseEntity<String> responseEntity = restTemplate.exchange("localhost:8080/api/user/getById?id=" + id, HttpMethod.GET, null, String.class);
        return responseEntity;
    }
    

    /**
     * 通过exchange实现POST请求获取ResponseEntity对象,包容有状态码,响应头和响应数据
     * @param user
     * @return
     */
    public ResponseEntity<String> exchangeToPost(User user) {
        //heads信息
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);

        //heads信息和body信息组装
        HttpEntity<User> httpEntity = new HttpEntity<>(user, headers);
        ResponseEntity<String> response = restTemplate.exchange("localhost:8080/api/user/insert", HttpMethod.POST, httpEntity, String.class);
        return response;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值