Class ProtocolExec

  • All Implemented Interfaces:
    ClientExecChain

    @Contract(threading=IMMUTABLE_CONDITIONAL)
    public class ProtocolExec
    extends java.lang.Object
    implements ClientExecChain
    Request executor in the request execution chain that is responsible for implementation of HTTP specification requirements. Internally this executor relies on a HttpProcessor to populate requisite HTTP request headers, process HTTP response headers and update session state in HttpClientContext.

    Further responsibilities such as communication with the opposite endpoint is delegated to the next executor in the request execution chain.

    Since:
    4.3
    • Method Detail

      • execute

        public CloseableHttpResponse execute​(HttpRoute route,
                                             HttpRequestWrapper request,
                                             HttpClientContext context,
                                             HttpExecutionAware execAware)
                                      throws java.io.IOException,
                                             HttpException
        Description copied from interface: ClientExecChain
        Executes th request either by transmitting it to the target server or by passing it onto the next executor in the request execution chain.
        Specified by:
        execute in interface ClientExecChain
        Parameters:
        route - connection route.
        request - current request.
        context - current HTTP context.
        execAware - receiver of notifications of blocking I/O operations.
        Returns:
        HTTP response either received from the opposite endpoint or generated locally.
        Throws:
        java.io.IOException - in case of a I/O error. (this type of exceptions are potentially recoverable).
        HttpException - in case of an HTTP protocol error (usually this type of exceptions are non-recoverable).