Spring WebFlux 中 ClientRequest 和 ClientHttpRequest 如何连接

How are ClientRequest & ClientHttpRequest connected in Spring WebFlux

当我们从 spring-webflux 使用 WebClient API 时,它在内部使用 ClientRequest class

但我们在 spring-web 模块中也有 ClientHttpRequest

为什么我们有两个不同的 class听起来很相似。有人可以解释这两个 class 之间的区别吗?

org.springframework.web.reactive.function.client.ClientRequest 意味着 class,Spring 开发人员可以将其与 WebClient 一起使用。它具有高级功能,如请求属性映射、用于记录目的的 logPrefix、静态构建器等。它还使用更高级别的概念,如 ExchangeStrategies.

另一方面,org.springframework.http.client.reactive.ClientHttpRequest 是原始 HTTP 级别的 HTTP 客户端请求的基本抽象。用于实现HTTP客户端的各种适配层(Reactor Netty、Jetty)。

因此,除非您正在处理低级别的东西,否则您不需要在您的应用程序中直接使用 ClientHttpRequest