org.springframework.http.client
Class BufferingClientHttpRequestFactory

java.lang.Object
  extended by org.springframework.http.client.AbstractClientHttpRequestFactoryWrapper
      extended by org.springframework.http.client.BufferingClientHttpRequestFactory
All Implemented Interfaces:
ClientHttpRequestFactory

public class BufferingClientHttpRequestFactory
extends AbstractClientHttpRequestFactoryWrapper

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
BufferingClientHttpRequestFactory(ClientHttpRequestFactory requestFactory)
           
 
Method Summary
protected  ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod, ClientHttpRequestFactory requestFactory)
          Create a new ClientHttpRequest 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
 

Constructor Detail

BufferingClientHttpRequestFactory

public BufferingClientHttpRequestFactory(ClientHttpRequestFactory requestFactory)
Method Detail

createRequest

protected ClientHttpRequest createRequest(URI uri,
                                          HttpMethod httpMethod,
                                          ClientHttpRequestFactory requestFactory)
                                   throws IOException
Description copied from class: AbstractClientHttpRequestFactoryWrapper
Create a new ClientHttpRequest for the specified URI and HTTP method by using the passed-on request factory.

Called from AbstractClientHttpRequestFactoryWrapper.createRequest(URI, HttpMethod).

Specified by:
createRequest in class AbstractClientHttpRequestFactoryWrapper
Parameters:
uri - the URI to create a request for
httpMethod - the HTTP method to execute
requestFactory - 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.

Default implementation returns true for all URIs and methods. Subclasses can override this method to change this behavior.

Parameters:
uri - the URI
httpMethod - the method
Returns:
true if the exchange should be buffered; false otherwise