public class SimpleClientHttpRequestFactory extends java.lang.Object implements ClientHttpRequestFactory
ClientHttpRequestFactory
implementation that uses standard J2SE facilities.HttpURLConnection
,
CommonsClientHttpRequestFactory
Modifier and Type | Field and Description |
---|---|
private boolean |
bufferRequestBody |
private int |
chunkSize |
private int |
connectTimeout |
private static int |
DEFAULT_CHUNK_SIZE |
private java.net.Proxy |
proxy |
private int |
readTimeout |
Constructor and Description |
---|
SimpleClientHttpRequestFactory() |
Modifier and Type | Method and Description |
---|---|
ClientHttpRequest |
createRequest(java.net.URI uri,
HttpMethod httpMethod)
Create a new
ClientHttpRequest for the specified URI and HTTP method. |
protected java.net.HttpURLConnection |
openConnection(java.net.URL url,
java.net.Proxy proxy)
Opens and returns a connection to the given URL.
|
protected void |
prepareConnection(java.net.HttpURLConnection connection,
java.lang.String httpMethod)
Template method for preparing the given
HttpURLConnection . |
void |
setBufferRequestBody(boolean bufferRequestBody)
Indicates whether this request factory should buffer the request body
internally.
|
void |
setChunkSize(int chunkSize)
Sets the number of bytes to write in each chunk when not buffering request bodies locally.
|
void |
setConnectTimeout(int connectTimeout)
Set the underlying URLConnection's connect timeout (in milliseconds).
|
void |
setProxy(java.net.Proxy proxy)
Set the
Proxy to use for this request factory. |
void |
setReadTimeout(int readTimeout)
Set the underlying URLConnection's read timeout (in milliseconds).
|
private static final int DEFAULT_CHUNK_SIZE
private java.net.Proxy proxy
private boolean bufferRequestBody
private int chunkSize
private int connectTimeout
private int readTimeout
public void setProxy(java.net.Proxy proxy)
Proxy
to use for this request factory.public void setBufferRequestBody(boolean bufferRequestBody)
Default is true
. When sending large amounts of data via POST or PUT, it is recommended
to change this property to false
, so as not to run out of memory. This will result in a
ClientHttpRequest
that either streams directly to the underlying HttpURLConnection
(if the Content-Length
is known in advance),
or that will use "Chunked transfer encoding" (if the Content-Length
is not known in advance).
setChunkSize(int)
,
HttpURLConnection.setFixedLengthStreamingMode(int)
public void setChunkSize(int chunkSize)
Note that this parameter is only used when bufferRequestBody
is set
to false
, and the Content-Length
is not known in advance.
setBufferRequestBody(boolean)
public void setConnectTimeout(int connectTimeout)
Default is the system's default timeout.
URLConnection.setConnectTimeout(int)
public void setReadTimeout(int readTimeout)
Default is the system's default timeout.
URLConnection.setReadTimeout(int)
public ClientHttpRequest createRequest(java.net.URI uri, HttpMethod httpMethod) throws java.io.IOException
ClientHttpRequestFactory
ClientHttpRequest
for the specified URI and HTTP method.
The returned request can be written to, and then executed by calling
ClientHttpRequest.execute()
.
createRequest
in interface ClientHttpRequestFactory
uri
- the URI to create a request forhttpMethod
- the HTTP method to executejava.io.IOException
- in case of I/O errorsprotected java.net.HttpURLConnection openConnection(java.net.URL url, java.net.Proxy proxy) throws java.io.IOException
The default implementation uses the given proxy - if any - to open a connection.
url
- the URL to open a connection toproxy
- the proxy to use, may be null
java.io.IOException
- in case of I/O errorsprotected void prepareConnection(java.net.HttpURLConnection connection, java.lang.String httpMethod) throws java.io.IOException
HttpURLConnection
.
The default implementation prepares the connection for input and output, and sets the HTTP method.
connection
- the connection to preparehttpMethod
- the HTTP request method (GET
, POST
, etc.)java.io.IOException
- in case of I/O errors