本文是精讲响应式WebClient第2篇,前篇的blog访问地址如下:
在上一篇文章为大家介绍了响应式IO模型和WebClient的基本用法。本节来继续深入的为大家介绍:如何使用WebClient作为Http客户端发送GET请求与进行响应结果的接收。
一、block()阻塞式获取响应结果
WebClient客户端既支持同步异步、阻塞与非阻塞IO,我们先来为大家介绍一下同步阻塞式的编程方式。即:在请求发送之后使用block()方法,阻塞当前线程等待获取响应结果。
1.1.使用Mono接收单个对象
创建测试用例,成员变量WebClient,以 "http://jsonplaceholder.typicode.com" 为访问服务基础路径,该网站是一个免费提供RESTful API进行接口测试的一个网站。
public class GetTest {
//创建webClient
private WebClient webClient = WebClient.builder()
.baseUrl("http://jsonplaceholder.typicode.com")
.build();
@Test
public void testMono() {
Mono mono = webClient
.get() // 发送GET 请求
.uri("/posts/1") //服务请求路径,基于baseurl
.retrieve() // 获取响应体
.bodyToMono(PostDTO.class); //响应数据类型转换
System.out.println(mono.block());
}
}
get() 方法表示使用HTTP GET method
uri() 指定服务接口路径,以baseurl为基础