RestTemplate 使用

1. 项目中创建实例(当然也可以使用时创建实例)

@Configuration
public class RestTemplateConfig {
    @Bean(name = "factory")
    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(15000);
        factory.setReadTimeout(5000);
        return factory;
    }
    
    @Bean(name = "restTemplate")
    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        return new RestTemplate(factory);
    }
}

1. GET请求

@Autowired
private RestTemplate restTemplate;
    
...
// 封装Header 一般来说不需要封装
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("", "keep-alive");

HttpEntity<String> requestEntity = new HttpEntity<>(null, requestHeaders);
                
// 根据不同的相应类型来接取
 ResponseEntity<String> entity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);

 ResponseEntity<Resource> entity = rest.exchange(matchUrl, HttpMethod.GET, requestEntity, Resource.class);
 
 ResponseEntity<Map> entity =  restTemplate.exchange(url,HttpMethod.GET,Resource,Map.class);
 
 

2. post请求

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Content-type", "application/json; charset=utf-8");
Map<String,Object> body = new HashMap<>();
body.put("id",1);
HttpEntity<Map> requestEntity = new HttpEntity<>(body, requestHeaders);
// 根据不同的相应类型来接取
 ResponseEntity<String> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);

 ResponseEntity<Resource> entity = rest.exchange(matchUrl, HttpMethod.POST, requestEntity, Resource.class);
 
 ResponseEntity<Map> entity =  restTemplate.exchange(url,HttpMethod.POST,Resource,Map.class);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RestTemplate是Spring提供的一个用于访问RESTful Web服务的客户端工具类,它封装了HTTP请求和响应的细节,使得开发者可以方便地进行RESTful Web服务的调用。 使用RestTemplate需要进行以下步骤: 1. 创建RestTemplate实例 可以使用以下代码创建一个RestTemplate实例: ``` RestTemplate restTemplate = new RestTemplate(); ``` 2. 发送HTTP请求 可以使用RestTemplate的一些方法发送HTTP请求,例如: ``` // GET请求 String result = restTemplate.getForObject(url, String.class); // POST请求 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<String> entity = new HttpEntity<>(requestBody, headers); String result = restTemplate.postForObject(url, entity, String.class); ``` 其中,`url`表示请求的URL,`String.class`表示请求返回的数据类型,`requestBody`表示POST请求中的请求体。 3. 处理HTTP响应 RestTemplate提供了一些方法用于处理HTTP响应,例如: ``` // GET请求 ResponseEntity<String> response = restTemplate.getForEntity(url, String.class); HttpStatus statusCode = response.getStatusCode(); String responseBody = response.getBody(); // POST请求 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<String> entity = new HttpEntity<>(requestBody, headers); ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class); HttpStatus statusCode = response.getStatusCode(); String responseBody = response.getBody(); ``` 其中,`ResponseEntity`表示HTTP响应的实体类,包含了响应头、响应状态码和响应体等信息,`statusCode`表示响应状态码,`responseBody`表示响应体。 以上就是使用RestTemplate的基本流程。在实际的开发中,可以根据实际需求选择不同的RestTemplate方法来发送HTTP请求和处理HTTP响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值