org.apache.hc.client5.http.impl.classic

## Class ProtocolExec

- java.lang.Object
- - org.apache.hc.client5.http.impl.classic.ProtocolExec

All Implemented Interfaces:
  ExecChainHandler

    @Contract(threading=STATELESS)
    @Internal
    public final class ProtocolExec
    extends Object
    implements ExecChainHandler

Request execution handler in the classic request execution chain that is responsible for implementation of HTTP specification requirements.

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

Since:
  4.3

### Constructor Summary

Constructors
Constructor and Description
`ProtocolExec(org.apache.hc.core5.http.protocol.HttpProcessor httpProcessor, AuthenticationStrategy targetAuthStrategy, AuthenticationStrategy proxyAuthStrategy)`

### Method Summary

Methods
`org.apache.hc.core5.http.ClassicHttpResponse` `execute(org.apache.hc.core5.http.ClassicHttpRequest request, ExecChain.Scope scope, ExecChain chain)` Executes the actual HTTP request.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ProtocolExec

    public ProtocolExec(org.apache.hc.core5.http.protocol.HttpProcessor httpProcessor,
                AuthenticationStrategy targetAuthStrategy,
                AuthenticationStrategy proxyAuthStrategy)

### Method Detail

#### execute

    public org.apache.hc.core5.http.ClassicHttpResponse execute(org.apache.hc.core5.http.ClassicHttpRequest request,
                                                       ExecChain.Scope scope,
                                                       ExecChain chain)
                                                         throws IOException,
                                                                org.apache.hc.core5.http.HttpException

Description copied from interface: `ExecChainHandler`
Executes the actual HTTP request. The handler can choose to return a response message or delegate request execution to the next element in the execution chain.

Specified by:
  `execute` in interface `ExecChainHandler`
Parameters:
  `request` - the actual request.
  `scope` - the execution scope .
  `chain` - the next element in the request execution chain.
Throws:
  `IOException`
  `org.apache.hc.core5.http.HttpException`