Spring中网络请求客户端WebClient的使用详解
import org.springframework.web.reactive.function.client.WebClient;
public class WebClientExample {
public static void main(String[] args) {
// 创建WebClient实例
WebClient webClient = WebClient.create("http://example.com");
// 发送GET请求,获取String响应
String result = webClient.get()
.uri("/resource")
.header("Accept", "application/json")
.retrieve()
.bodyToMono(String.class)
.block(); // 注意:仅在单线程环境中使用block()
System.out.println(result);
// 发送POST请求,发送一个对象并接收一个对象
MyData data = new MyData("value1", "value2");
MyData resultData = webClient.post()
.uri("/submit")
.bodyValue(data)
.retrieve()
.bodyToMono(MyData.class)
.block();
System.out.println(resultData);
}
}
// 假设MyData是一个简单的POJO类
class MyData {
private String field1;
private String field2;
// 构造函数、getter和setter省略
}
这个例子展示了如何使用Spring WebClient发送GET和POST请求。注意,在实际生产代码中应避免使用block()
,因为它会阻塞线程,应该处理响应的Mono
或Flux
对象。这里为了演示方便和简单示例,使用了block()
。
评论已关闭