spring发送http请求的api
时间: 2023-11-14 10:06:12 浏览: 94
Spring提供了多种发送HTTP请求的API,其中最常用的是使用`RestTemplate`和`WebClient`。
1. `RestTemplate`:在Spring 3.x版本中引入,是一个传统的同步阻塞式的HTTP客户端。可以发送各种HTTP请求(GET、POST、PUT、DELETE等),并支持各种类型的请求和响应数据的转换。以下是一个简单的例子:
```java
RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api/resource";
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
String responseBody = response.getBody();
```
2. `WebClient`:在Spring 5.x版本中引入,是一个非阻塞式的HTTP客户端,基于Reactor项目。可以以响应式的方式发送HTTP请求,并支持流式处理响应数据。以下是一个简单的例子:
```java
WebClient webClient = WebClient.create();
String url = "http://example.com/api/resource";
Mono<String> responseMono = webClient.get()
.uri(url)
.retrieve()
.bodyToMono(String.class);
responseMono.subscribe(responseBody -> {
// 处理响应数据
});
```
除了上述两种方式,还可以使用第三方库如`Apache HttpClient`或`OkHttp`来发送HTTP请求。Spring也提供了与这些库集成的API,例如`RestTemplateBuilder`和`WebClient.Builder`。
需要注意的是,从Spring 5.0开始,官方推荐使用`WebClient`来发送HTTP请求,因为它更适合处理异步、流式以及响应式编程的场景。
阅读全文