org.apache.http.impl.client
Class DefaultRedirectStrategy

java.lang.Object
  extended by org.apache.http.impl.client.DefaultRedirectStrategy
All Implemented Interfaces:
RedirectStrategy
Direct Known Subclasses:
LaxRedirectStrategy

@Contract(threading=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 DefaultRedirectStrategy INSTANCE
           
static String REDIRECT_LOCATIONS
          Deprecated. (4.3) use HttpClientContext.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

@Deprecated
public static final String REDIRECT_LOCATIONS
Deprecated. (4.3) use HttpClientContext.REDIRECT_LOCATIONS.
See Also:
Constant Field Values

INSTANCE

public static final DefaultRedirectStrategy INSTANCE
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–2018 The Apache Software Foundation. All rights reserved.