Class HttpRequestExecutor


  • @Contract(threading=IMMUTABLE)
    public class HttpRequestExecutor
    extends java.lang.Object
    HttpRequestExecutor is a client side HTTP protocol handler based on the blocking (classic) I/O model.

    HttpRequestExecutor relies on HttpProcessor to generate mandatory protocol headers for all outgoing messages and apply common, cross-cutting message transformations to all incoming and outgoing messages. Application specific processing can be implemented outside HttpRequestExecutor once the request has been executed and a response has been received.

    Since:
    4.0
    • Method Detail

      • execute

        public ClassicHttpResponse execute​(ClassicHttpRequest request,
                                           HttpClientConnection conn,
                                           HttpResponseInformationCallback informationCallback,
                                           HttpContext context)
                                    throws java.io.IOException,
                                           HttpException
        Sends the request and obtain a response.
        Parameters:
        request - the request to execute.
        conn - the connection over which to execute the request.
        informationCallback - callback to execute upon receipt of information status (1xx). May be null.
        context - the context
        Returns:
        the response to the request.
        Throws:
        java.io.IOException - in case of an I/O error.
        HttpException - in case of HTTP protocol violation or a processing problem.
      • execute

        public ClassicHttpResponse execute​(ClassicHttpRequest request,
                                           HttpClientConnection conn,
                                           HttpContext context)
                                    throws java.io.IOException,
                                           HttpException
        Sends the request and obtain a response.
        Parameters:
        request - the request to execute.
        conn - the connection over which to execute the request.
        context - the context
        Returns:
        the response to the request.
        Throws:
        java.io.IOException - in case of an I/O error.
        HttpException - in case of HTTP protocol violation or a processing problem.
      • preProcess

        public void preProcess​(ClassicHttpRequest request,
                               HttpProcessor processor,
                               HttpContext context)
                        throws HttpException,
                               java.io.IOException
        Pre-process the given request using the given protocol processor and initiates the process of request execution.
        Parameters:
        request - the request to prepare
        processor - the processor to use
        context - the context for sending the request
        Throws:
        java.io.IOException - in case of an I/O error.
        HttpException - in case of HTTP protocol violation or a processing problem.
      • postProcess

        public void postProcess​(ClassicHttpResponse response,
                                HttpProcessor processor,
                                HttpContext context)
                         throws HttpException,
                                java.io.IOException
        Post-processes the given response using the given protocol processor and completes the process of request execution.

        This method does not read the response entity, if any. The connection over which content of the response entity is being streamed from cannot be reused until the response entity has been fully consumed.

        Parameters:
        response - the response object to post-process
        processor - the processor to use
        context - the context for post-processing the response
        Throws:
        java.io.IOException - in case of an I/O error.
        HttpException - in case of HTTP protocol violation or a processing problem.
      • keepAlive

        public boolean keepAlive​(ClassicHttpRequest request,
                                 ClassicHttpResponse response,
                                 HttpClientConnection connection,
                                 HttpContext context)
                          throws java.io.IOException
        Determines whether the connection can be kept alive and is safe to be re-used for subsequent message exchanges.
        Parameters:
        request - current request object.
        response - current response object.
        connection - actual connection.
        context - current context.
        Returns:
        true is the connection can be kept-alive and re-used.
        Throws:
        java.io.IOException - in case of an I/O error.