org.apache.hc.client5.http.impl

## Class DefaultRedirectStrategy

- java.lang.Object
- - org.apache.hc.client5.http.impl.DefaultRedirectStrategy

All Implemented Interfaces:
  RedirectStrategy

    @Contract(threading=IMMUTABLE)
    public class DefaultRedirectStrategy
    extends Object
    implements RedirectStrategy

Default implementation of `RedirectStrategy`. This strategy honors the restrictions on automatic redirection of unsafe methods such as POST, PUT and DELETE imposed by the HTTP specification. Non safe methods will be redirected as GET in response to status code `HttpStatus.SC_MOVED_PERMANENTLY`, `HttpStatus.SC_MOVED_TEMPORARILY` and `HttpStatus.SC_SEE_OTHER`.

Since:
  4.1

### Field Summary

Fields
`static DefaultRedirectStrategy` `INSTANCE`

### Constructor Summary

Constructors
Constructor and Description
`DefaultRedirectStrategy()`
`DefaultRedirectStrategy(String... safeMethods)`

### Method Summary

Methods
`protected URI` `createLocationURI(String location)`
`URI` `getLocationURI(org.apache.hc.core5.http.HttpRequest request, org.apache.hc.core5.http.HttpResponse response, org.apache.hc.core5.http.protocol.HttpContext context)`
`boolean` `isRedirected(org.apache.hc.core5.http.HttpRequest request, org.apache.hc.core5.http.HttpResponse response, org.apache.hc.core5.http.protocol.HttpContext context)` Determines if a request should be redirected to a new location given the response from the target server.

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

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

### Field Detail

#### INSTANCE

    public static final DefaultRedirectStrategy INSTANCE

### Constructor Detail

#### DefaultRedirectStrategy

    public DefaultRedirectStrategy(String... safeMethods)

#### DefaultRedirectStrategy

    public DefaultRedirectStrategy()

### Method Detail

#### isRedirected

    public boolean isRedirected(org.apache.hc.core5.http.HttpRequest request,
                       org.apache.hc.core5.http.HttpResponse response,
                       org.apache.hc.core5.http.protocol.HttpContext context)
                         throws org.apache.hc.core5.http.ProtocolException

Description copied from interface: `RedirectStrategy`
Determines if a request should be redirected to a new location given the response from the target server.

Specified by:
  `isRedirected` in interface `RedirectStrategy`
Parameters:
  `request` - the executed request
  `response` - the response received from the target server
  `context` - the context for the request execution
Returns:
  `true` if the request should be redirected, `false` otherwise
Throws:
  `org.apache.hc.core5.http.ProtocolException`

#### getLocationURI

    public URI getLocationURI(org.apache.hc.core5.http.HttpRequest request,
                     org.apache.hc.core5.http.HttpResponse response,
                     org.apache.hc.core5.http.protocol.HttpContext context)
                       throws org.apache.hc.core5.http.HttpException

Specified by:
  `getLocationURI` in interface `RedirectStrategy`
Throws:
  `org.apache.hc.core5.http.HttpException`

#### createLocationURI

    protected URI createLocationURI(String location)
                             throws org.apache.hc.core5.http.ProtocolException

Throws:
  `org.apache.hc.core5.http.ProtocolException`
Since:
  4.1