## org.apache.http.impl.client
Class DefaultRedirectStrategy

    java.lang.Object
      org.apache.http.impl.client.DefaultRedirectStrategy

All Implemented Interfaces:
  RedirectStrategy

Direct Known Subclasses:
  LaxRedirectStrategy

    @Immutable
    public class DefaultRedirectStrategy

extends Object
implements RedirectStrategy

Default implementation of `RedirectStrategy`. This strategy honors the restrictions on automatic redirection of entity enclosing methods such as POST and PUT imposed by the HTTP specification. `302 Moved Temporarily`, `301 Moved Permanently` and `307 Temporary Redirect` status codes will result in an automatic redirect of HEAD and GET methods only. POST and PUT methods will not be automatically redirected as requiring user confirmation.

The restriction on automatic redirection of POST methods can be relaxed by using `LaxRedirectStrategy` instead of `DefaultRedirectStrategy`.

Since:
  4.1
See Also:
  `LaxRedirectStrategy`

Field Summary
`static String` `REDIRECT_LOCATIONS`

Constructor Summary
`DefaultRedirectStrategy()`

Method Summary
`protected URI` `createLocationURI(String location)`
`URI` `getLocationURI(HttpRequest request, HttpResponse response, HttpContext context)`
`HttpUriRequest` `getRedirect(HttpRequest request, HttpResponse response, HttpContext context)` Determines the redirect location given the response from the target server and the current request execution context and generates a new request to be sent to the location.
`protected boolean` `isRedirectable(String method)`
`boolean` `isRedirected(HttpRequest request, HttpResponse response, 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

### REDIRECT_LOCATIONS

    public static final String REDIRECT_LOCATIONS

See Also:
  Constant Field Values

Constructor Detail

### DefaultRedirectStrategy

    public DefaultRedirectStrategy()

Method Detail

### isRedirected

    public boolean isRedirected(HttpRequest request,
                                HttpResponse response,
                                HttpContext context)
                         throws 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:
    `ProtocolException`

### getLocationURI

    public URI getLocationURI(HttpRequest request,
                              HttpResponse response,
                              HttpContext context)
                       throws ProtocolException

  Throws:
    `ProtocolException`

### createLocationURI

    protected URI createLocationURI(String location)
                             throws ProtocolException

  Throws:
    `ProtocolException`
  Since:
    4.1

### isRedirectable

    protected boolean isRedirectable(String method)

  Since:
    4.2

### getRedirect

    public HttpUriRequest getRedirect(HttpRequest request,
                                      HttpResponse response,
                                      HttpContext context)
                               throws ProtocolException

  Description copied from interface: `RedirectStrategy`
  Determines the redirect location given the response from the target server and the current request execution context and generates a new request to be sent to the location.

  Specified by:
    `getRedirect` in interface `RedirectStrategy`
  Parameters:
    `request` - the executed request
    `response` - the response received from the target server
    `context` - the context for the request execution
  Returns:
    redirected request
  Throws:
    `ProtocolException`

Copyright © 1999-2013 The Apache Software Foundation. All Rights Reserved.