Class DefaultRedirectStrategy

  • All Implemented Interfaces:
    RedirectStrategy
    Direct Known Subclasses:
    LaxRedirectStrategy

    @Contract(threading=IMMUTABLE)
    public class DefaultRedirectStrategy
    extends java.lang.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
    • 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DefaultRedirectStrategy

        public DefaultRedirectStrategy()
    • 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 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.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 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:
        org.apache.http.ProtocolException