org.springframework.http.client

Class HttpComponentsClientHttpRequestFactory

  • java.lang.Object
    • org.springframework.http.client.HttpComponentsClientHttpRequestFactory
    • Constructor Detail

      • HttpComponentsClientHttpRequestFactory

        public HttpComponentsClientHttpRequestFactory()
        Create a new instance of the HttpComponentsClientHttpRequestFactory with a default HttpClient based on system properties.
      • HttpComponentsClientHttpRequestFactory

        public HttpComponentsClientHttpRequestFactory(HttpClient httpClient)
        Create a new instance of the HttpComponentsClientHttpRequestFactory with the given HttpClient instance.
        Parameters:
        httpClient - the HttpClient instance to use for this request factory
    • Method Detail

      • setConnectTimeout

        public void setConnectTimeout(int timeout)
        Set the connection timeout for the underlying RequestConfig. A timeout value of 0 specifies an infinite timeout.

        Additional properties can be configured by specifying a RequestConfig instance on a custom HttpClient.

        This options does not affect connection timeouts for SSL handshakes or CONNECT requests; for that, it is required to use the SocketConfig on the HttpClient itself.

        Parameters:
        timeout - the timeout value in milliseconds
        See Also:
        RequestConfig.getConnectTimeout(), SocketConfig.getSoTimeout()
      • setConnectionRequestTimeout

        public void setConnectionRequestTimeout(int connectionRequestTimeout)
        Set the timeout in milliseconds used when requesting a connection from the connection manager using the underlying RequestConfig. A timeout value of 0 specifies an infinite timeout.

        Additional properties can be configured by specifying a RequestConfig instance on a custom HttpClient.

        Parameters:
        connectionRequestTimeout - the timeout value to request a connection in milliseconds
        See Also:
        RequestConfig.getConnectionRequestTimeout()
      • setReadTimeout

        public void setReadTimeout(int timeout)
        Set the socket read timeout for the underlying RequestConfig. A timeout value of 0 specifies an infinite timeout.

        Additional properties can be configured by specifying a RequestConfig instance on a custom HttpClient.

        Parameters:
        timeout - the timeout value in milliseconds
        See Also:
        RequestConfig.getSocketTimeout()
      • setBufferRequestBody

        public void setBufferRequestBody(boolean bufferRequestBody)
        Indicates whether this request factory should buffer the request body internally.

        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.

        Since:
        4.0
      • createRequestConfig

        @Nullable
        protected RequestConfig createRequestConfig(java.lang.Object client)
        Create a default RequestConfig to use with the given client. Can return null to indicate that no custom request config should be set and the defaults of the HttpClient should be used.

        The default implementation tries to merge the defaults of the client with the local customizations of this factory instance, if any.

        Parameters:
        client - the HttpClient (or HttpAsyncClient) to check
        Returns:
        the actual RequestConfig to use (may be null)
        Since:
        4.2
        See Also:
        mergeRequestConfig(RequestConfig)
      • createHttpUriRequest

        protected HttpUriRequest createHttpUriRequest(HttpMethod httpMethod,
                                                      java.net.URI uri)
        Create a Commons HttpMethodBase object for the given HTTP method and URI specification.
        Parameters:
        httpMethod - the HTTP method
        uri - the URI
        Returns:
        the Commons HttpMethodBase object
      • postProcessHttpRequest

        protected void postProcessHttpRequest(HttpUriRequest request)
        Template method that allows for manipulating the HttpUriRequest before it is returned as part of a HttpComponentsClientHttpRequest.

        The default implementation is empty.

        Parameters:
        request - the request to process
      • createHttpContext

        @Nullable
        protected org.apache.http.protocol.HttpContext createHttpContext(HttpMethod httpMethod,
                                                                                   java.net.URI uri)
        Template methods that creates a HttpContext for the given HTTP method and URI.

        The default implementation returns null.

        Parameters:
        httpMethod - the HTTP method
        uri - the URI
        Returns:
        the http context
      • destroy

        public void destroy()
                     throws java.lang.Exception
        Shutdown hook that closes the underlying ClientConnectionManager's connection pool, if any.
        Specified by:
        destroy in interface DisposableBean
        Throws:
        java.lang.Exception - in case of shutdown errors. Exceptions will get logged but not rethrown to allow other beans to release their resources as well.