Class HttpComponentsClientHttpRequestFactory

    • 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()
      • 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
      • setHttpContextFactory

        public void setHttpContextFactory​(BiFunction<HttpMethod,​URI,​org.apache.http.protocol.HttpContext> httpContextFactory)
        Configure a factory to pre-create the HttpContext for each request.

        This may be useful for example in mutual TLS authentication where a different RestTemplate for each client certificate such that all calls made through a given RestTemplate instance as associated for the same client identity. HttpClientContext.setUserToken(Object) can be used to specify a fixed user token for all requests.

        Parameters:
        httpContextFactory - the context factory to use
        Since:
        5.2.7
      • createRequestConfig

        @Nullable
        protected RequestConfig createRequestConfig​(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,
                                                      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,
                                                                         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