org.apache.hc.client5.http.impl.sync

## Class RedirectExec

- java.lang.Object
- - org.apache.hc.client5.http.impl.sync.RedirectExec

All Implemented Interfaces:
  ClientExecChain

    @ThreadSafe
    public class RedirectExec
    extends Object
    implements ClientExecChain

Request executor in the request execution chain that is responsible for handling of request redirects.

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
`RedirectExec(ClientExecChain requestExecutor, HttpRoutePlanner routePlanner, RedirectStrategy redirectStrategy)`

### Method Summary

Methods
`CloseableHttpResponse` `execute(HttpRoute route, HttpRequestWrapper request, HttpClientContext context, HttpExecutionAware execAware)` Executes th request either by transmitting it to the target server or by passing it onto the next executor in the request execution chain.

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

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

### Constructor Detail

#### RedirectExec

    public RedirectExec(ClientExecChain requestExecutor,
                HttpRoutePlanner routePlanner,
                RedirectStrategy redirectStrategy)

### Method Detail

#### execute

    public CloseableHttpResponse execute(HttpRoute route,
                                HttpRequestWrapper request,
                                HttpClientContext context,
                                HttpExecutionAware execAware)
                                  throws IOException,
                                         org.apache.hc.core5.http.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:
  `IOException` - in case of a I/O error. (this type of exceptions are potentially recoverable).
  `org.apache.hc.core5.http.HttpException` - in case of an HTTP protocol error (usually this type of exceptions are non-recoverable).