如何在Spring Boot中使用`WebClient`发送HTTP请求?
时间: 2024-10-16 08:18:53 浏览: 31
在Spring Boot中,你可以使用`WebClient`来方便地发送HTTP请求,它是一个非阻塞、响应式的HTTP客户端库。以下是使用`WebClient`发送GET、POST等请求的基本步骤:
1. 添加依赖:首先确保你的`pom.xml`文件包含Spring Web WebClient的相关依赖,如果还没有添加,可以添加如下内容:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
```
2. 创建WebClient实例:在需要发送HTTP请求的地方,创建一个`WebClient`实例,通常在模块级别或函数级别初始化一次:
```java
import org.springframework.web.reactive.function.client.WebClient;
private static final WebClient webClient = WebClient.create();
```
3. 发送请求:使用`webClient`的方法发送请求,比如GET、POST等,下面是一些示例:
- GET请求:
```java
Mono<String> responseMono = webClient.get()
.uri("http://example.com/api/data")
.retrieve()
.toEntity(String.class);
```
- POST请求(携带JSON数据):
```java
Mono<ServerResponse> postResponseMono = webClient.post()
.uri("http://example.com/api/post")
.contentType(MediaType.APPLICATION_JSON)
.bodyValue(jsonObject)
.retrieve()
.toEntity(ServerResponse.class);
```
4. 处理响应:`Mono`或`Flux`类型的响应包含了HTTP状态码和响应体,你需要处理这些结果。例如,使用`.block()`方法等待响应完成,或者使用`.subscribe()`处理异步流。
阅读全文