Package org.apache.http.impl.client
Class DefaultRedirectStrategy
- java.lang.Object
-
- org.apache.http.impl.client.DefaultRedirectStrategy
-
- All Implemented Interfaces:
RedirectStrategy
- Direct Known Subclasses:
LaxRedirectStrategy
@Contract(threading=IMMUTABLE) public class DefaultRedirectStrategy extends java.lang.Object implements RedirectStrategy
Default implementation ofRedirectStrategy
. 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
and307 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 ofDefaultRedirectStrategy
.- Since:
- 4.1
- See Also:
LaxRedirectStrategy
-
-
Field Summary
Fields Modifier and Type Field Description static DefaultRedirectStrategy
INSTANCE
private org.apache.commons.logging.Log
log
static java.lang.String
REDIRECT_LOCATIONS
Deprecated.(4.3) useHttpClientContext.REDIRECT_LOCATIONS
.private java.lang.String[]
redirectMethods
static int
SC_PERMANENT_REDIRECT
-
Constructor Summary
Constructors Constructor Description DefaultRedirectStrategy()
DefaultRedirectStrategy(java.lang.String[] redirectMethods)
Constructs a new instance to redirect the given HTTP methods.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.net.URI
createLocationURI(java.lang.String location)
java.net.URI
getLocationURI(org.apache.http.HttpRequest request, org.apache.http.HttpResponse response, org.apache.http.protocol.HttpContext context)
HttpUriRequest
getRedirect(org.apache.http.HttpRequest request, org.apache.http.HttpResponse response, org.apache.http.protocol.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(java.lang.String method)
boolean
isRedirected(org.apache.http.HttpRequest request, org.apache.http.HttpResponse response, org.apache.http.protocol.HttpContext context)
Determines if a request should be redirected to a new location given the response from the target server.
-
-
-
Field Detail
-
log
private final org.apache.commons.logging.Log log
-
SC_PERMANENT_REDIRECT
public static final int SC_PERMANENT_REDIRECT
- See Also:
- Constant Field Values
-
REDIRECT_LOCATIONS
@Deprecated public static final java.lang.String REDIRECT_LOCATIONS
Deprecated.(4.3) useHttpClientContext.REDIRECT_LOCATIONS
.- See Also:
- Constant Field Values
-
INSTANCE
public static final DefaultRedirectStrategy INSTANCE
-
redirectMethods
private final java.lang.String[] redirectMethods
-
-
Method Detail
-
isRedirected
public boolean isRedirected(org.apache.http.HttpRequest request, org.apache.http.HttpResponse response, org.apache.http.protocol.HttpContext context) throws org.apache.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 interfaceRedirectStrategy
- Parameters:
request
- the executed requestresponse
- the response received from the target servercontext
- the context for the request execution- Returns:
true
if the request should be redirected,false
otherwise- Throws:
org.apache.http.ProtocolException
-
getLocationURI
public java.net.URI getLocationURI(org.apache.http.HttpRequest request, org.apache.http.HttpResponse response, org.apache.http.protocol.HttpContext context) throws org.apache.http.ProtocolException
- Throws:
org.apache.http.ProtocolException
-
createLocationURI
protected java.net.URI createLocationURI(java.lang.String location) throws org.apache.http.ProtocolException
- Throws:
org.apache.http.ProtocolException
- Since:
- 4.1
-
isRedirectable
protected boolean isRedirectable(java.lang.String method)
- Since:
- 4.2
-
getRedirect
public HttpUriRequest getRedirect(org.apache.http.HttpRequest request, org.apache.http.HttpResponse response, org.apache.http.protocol.HttpContext context) throws org.apache.http.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 interfaceRedirectStrategy
- Parameters:
request
- the executed requestresponse
- the response received from the target servercontext
- the context for the request execution- Returns:
- redirected request
- Throws:
org.apache.http.ProtocolException
-
-