我在使用 Spring 构建的 Rest 客户端之一中看到了以下代码。此 Rest 客户端存在于 REST 服务中,并且正在调用另一个 REST 服务。此声明的目的是什么?
return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory())
BufferingClientHttpRequestFactory
是围绕ClientHttpRequestFactory
的装饰器,RestTemplate使用它来创建促进HTTP通信的ClientHttpRequest
。该装饰器特别提供传出/传入流的缓冲。此包装器/装饰器还允许多次读取响应正文,如果您仅使用 SimpleClientHttpRequestFactory
或 HttpComponentsClientHttpRequestFactory
而不使用此包装器,则无法执行此操作。
SimpleClientHttpRequestFactory
是 ClientHttpRequestFactory
的实现,它使用 JDK 工具(来自 java.net
包的类),因此不依赖于第三方库,例如 Apache HttpComponents HTTP 客户端,这是另一个实现所需的 HttpComponentsClientHttpRequestFactory
.
有人可以提供有关如何使用 BufferingClientHttpRequestFactory 的代码吗