Package org.springframework.http.client
Class BufferingClientHttpRequestFactory
- java.lang.Object
- org.springframework.http.client.AbstractClientHttpRequestFactoryWrapper
- org.springframework.http.client.BufferingClientHttpRequestFactory
- All Implemented Interfaces:
ClientHttpRequestFactory
public class BufferingClientHttpRequestFactory extends AbstractClientHttpRequestFactoryWrapper
Wrapper for aClientHttpRequestFactory
that buffers all outgoing and incoming streams in memory.Using this wrapper allows for multiple reads of the response body.
- Since:
- 3.1
- Author:
- Arjen Poutsma
Constructor Summary
Constructors Constructor Description BufferingClientHttpRequestFactory(ClientHttpRequestFactory requestFactory)
Create a buffering wrapper for the givenClientHttpRequestFactory
.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ClientHttpRequest
createRequest(URI uri, HttpMethod httpMethod, ClientHttpRequestFactory requestFactory)
Create a newClientHttpRequest
for the specified URI and HTTP method by using the passed-on request factory.protected boolean
shouldBuffer(URI uri, HttpMethod httpMethod)
Indicates whether the request/response exchange for the given URI and method should be buffered in memory.Methods inherited from class org.springframework.http.client.AbstractClientHttpRequestFactoryWrapper
createRequest
Constructor Detail
BufferingClientHttpRequestFactory
public BufferingClientHttpRequestFactory(ClientHttpRequestFactory requestFactory)
Create a buffering wrapper for the givenClientHttpRequestFactory
.- Parameters:
requestFactory
- the target request factory to wrap
Method Detail
createRequest
protected ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod, ClientHttpRequestFactory requestFactory) throws IOException
Description copied from class:AbstractClientHttpRequestFactoryWrapper
Create a newClientHttpRequest
for the specified URI and HTTP method by using the passed-on request factory.Called from
AbstractClientHttpRequestFactoryWrapper.createRequest(URI, HttpMethod)
.- Specified by:
createRequest
in classAbstractClientHttpRequestFactoryWrapper
- Parameters:
uri
- the URI to create a request forhttpMethod
- the HTTP method to executerequestFactory
- the wrapped request factory- Returns:
- the created request
- Throws:
IOException
- in case of I/O errors
shouldBuffer
protected boolean shouldBuffer(URI uri, HttpMethod httpMethod)
Indicates whether the request/response exchange for the given URI and method should be buffered in memory.The default implementation returns
true
for all URIs and methods. Subclasses can override this method to change this behavior.- Parameters:
uri
- the URIhttpMethod
- the method- Returns:
true
if the exchange should be buffered;false
otherwise