Class CloseableHttpClient

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, HttpClient, org.apache.hc.core5.io.ModalCloseable
    Direct Known Subclasses:
    InternalHttpClient, MinimalHttpClient

    @Contract(threading=SAFE)
    public abstract class CloseableHttpClient
    extends java.lang.Object
    implements HttpClient, org.apache.hc.core5.io.ModalCloseable
    Base implementation of HttpClient that also implements ModalCloseable.
    Since:
    4.3
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static org.slf4j.Logger LOG  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      private static org.apache.hc.core5.http.HttpHost determineTarget​(org.apache.hc.core5.http.ClassicHttpRequest request)  
      protected abstract CloseableHttpResponse doExecute​(org.apache.hc.core5.http.HttpHost target, org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context)  
      CloseableHttpResponse execute​(org.apache.hc.core5.http.ClassicHttpRequest request)
      Deprecated.
      It is strongly recommended to use execute methods with HttpClientResponseHandler such as execute(ClassicHttpRequest, HttpClientResponseHandler) in order to ensure automatic resource deallocation by the client.
      <T> T execute​(org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
      Executes a request using the default context and processes the response using the given response handler.
      CloseableHttpResponse execute​(org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context)
      Deprecated.
      It is strongly recommended to use execute methods with HttpClientResponseHandler such as execute(ClassicHttpRequest, HttpContext, HttpClientResponseHandler) in order to ensure automatic resource deallocation by the client.
      <T> T execute​(org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context, org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
      Executes a request using the default context and processes the response using the given response handler.
      CloseableHttpResponse execute​(org.apache.hc.core5.http.HttpHost target, org.apache.hc.core5.http.ClassicHttpRequest request)
      Deprecated.
      It is strongly recommended to use execute methods with HttpClientResponseHandler such as execute(HttpHost, ClassicHttpRequest, HttpClientResponseHandler) in order to ensure automatic resource deallocation by the client.
      <T> T execute​(org.apache.hc.core5.http.HttpHost target, org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
      Executes a request using the default context and processes the response using the given response handler.
      CloseableHttpResponse execute​(org.apache.hc.core5.http.HttpHost target, org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context)
      Deprecated.
      It is strongly recommended to use execute methods with HttpClientResponseHandler such as execute(HttpHost, ClassicHttpRequest, HttpContext, HttpClientResponseHandler) in order to ensure automatic resource deallocation by the client.
      <T> T execute​(org.apache.hc.core5.http.HttpHost target, org.apache.hc.core5.http.ClassicHttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context, org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
      Executes a request using the default context and processes the response using the given response handler.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.io.Closeable

        close
      • Methods inherited from interface org.apache.hc.core5.io.ModalCloseable

        close
    • Field Detail

      • LOG

        private static final org.slf4j.Logger LOG
    • Constructor Detail

      • CloseableHttpClient

        public CloseableHttpClient()
    • Method Detail

      • doExecute

        protected abstract CloseableHttpResponse doExecute​(org.apache.hc.core5.http.HttpHost target,
                                                           org.apache.hc.core5.http.ClassicHttpRequest request,
                                                           org.apache.hc.core5.http.protocol.HttpContext context)
                                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • execute

        public <T> T execute​(org.apache.hc.core5.http.ClassicHttpRequest request,
                             org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
                      throws java.io.IOException
        Executes a request using the default context and processes the response using the given response handler. The content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual HttpClientResponseHandlers from having to manage resource deallocation internally.
        Specified by:
        execute in interface HttpClient
        Parameters:
        request - the request to execute
        responseHandler - the response handler
        Returns:
        the response object as generated by the response handler.
        Throws:
        java.io.IOException - in case of a problem or the connection was aborted
        ClientProtocolException - in case of an http protocol error
      • execute

        public <T> T execute​(org.apache.hc.core5.http.ClassicHttpRequest request,
                             org.apache.hc.core5.http.protocol.HttpContext context,
                             org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
                      throws java.io.IOException
        Executes a request using the default context and processes the response using the given response handler. The content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual HttpClientResponseHandlers from having to manage resource deallocation internally.
        Specified by:
        execute in interface HttpClient
        Parameters:
        request - the request to execute
        responseHandler - the response handler
        context - the context to use for the execution, or null to use the default context
        Returns:
        the response object as generated by the response handler.
        Throws:
        java.io.IOException - in case of a problem or the connection was aborted
        ClientProtocolException - in case of an http protocol error
      • execute

        public <T> T execute​(org.apache.hc.core5.http.HttpHost target,
                             org.apache.hc.core5.http.ClassicHttpRequest request,
                             org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
                      throws java.io.IOException
        Executes a request using the default context and processes the response using the given response handler. The content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual HttpClientResponseHandlers from having to manage resource deallocation internally.
        Specified by:
        execute in interface HttpClient
        Parameters:
        target - the target host for the request. Implementations may accept null if they can still determine a route, for example to a default target or by inspecting the request.
        request - the request to execute
        responseHandler - the response handler
        Returns:
        the response object as generated by the response handler.
        Throws:
        java.io.IOException - in case of a problem or the connection was aborted
        ClientProtocolException - in case of an http protocol error
      • execute

        public <T> T execute​(org.apache.hc.core5.http.HttpHost target,
                             org.apache.hc.core5.http.ClassicHttpRequest request,
                             org.apache.hc.core5.http.protocol.HttpContext context,
                             org.apache.hc.core5.http.io.HttpClientResponseHandler<? extends T> responseHandler)
                      throws java.io.IOException
        Executes a request using the default context and processes the response using the given response handler. The content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual HttpClientResponseHandlers from having to manage resource deallocation internally.
        Specified by:
        execute in interface HttpClient
        Parameters:
        target - the target host for the request. Implementations may accept null if they can still determine a route, for example to a default target or by inspecting the request.
        request - the request to execute
        context - the context to use for the execution, or null to use the default context
        responseHandler - the response handler
        Returns:
        the response object as generated by the response handler.
        Throws:
        java.io.IOException - in case of a problem or the connection was aborted
        ClientProtocolException - in case of an http protocol error