Package org.springframework.http.client
Class BufferingClientHttpRequestFactory
java.lang.Object
org.springframework.http.client.AbstractClientHttpRequestFactoryWrapper
org.springframework.http.client.BufferingClientHttpRequestFactory
- All Implemented Interfaces:
Closeable
,AutoCloseable
,ClientHttpRequestFactory
Wrapper for a
ClientHttpRequestFactory
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
ConstructorDescriptionBufferingClientHttpRequestFactory
(ClientHttpRequestFactory requestFactory) Create a buffering wrapper for the givenClientHttpRequestFactory
. -
Method Summary
Modifier and TypeMethodDescriptionprotected 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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.http.client.ClientHttpRequestFactory
close
-
Constructor Details
-
BufferingClientHttpRequestFactory
Create a buffering wrapper for the givenClientHttpRequestFactory
.- Parameters:
requestFactory
- the target request factory to wrap
-
-
Method Details
-
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
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
-