Class HttpRedirector

java.lang.Object
org.eclipse.jetty.client.HttpRedirector

public class HttpRedirector extends Object
Utility class that handles HTTP redirects.

Applications can disable redirection via Request.followRedirects(boolean) and then rely on this class to perform the redirect in a simpler way, for example:


 HttpRedirector redirector = new HttpRedirector(httpClient);

 Request request = httpClient.newRequest("http://host/path").followRedirects(false);
 ContentResponse response = request.send();
 while (redirector.isRedirect(response))
 {
     // Validate the redirect URI
     if (!validate(redirector.extractRedirectURI(response)))
         break;

     Result result = redirector.redirect(request, response);
     request = result.getRequest();
     response = result.getResponse();
 }
 
  • Constructor Details

    • HttpRedirector

      public HttpRedirector(HttpClient client)
  • Method Details

    • isRedirect

      public boolean isRedirect(Response response)
      Parameters:
      response - the response to check for redirects
      Returns:
      whether the response code is an HTTP redirect code
    • redirect

      public Result redirect(Request request, Response response) throws InterruptedException, ExecutionException
      Redirects the given response, blocking until the redirect is complete.
      Parameters:
      request - the original request that triggered the redirect
      response - the response to the original request
      Returns:
      a Result object containing the request to the redirected location and its response
      Throws:
      InterruptedException - if the thread is interrupted while waiting for the redirect to complete
      ExecutionException - if the redirect failed
      See Also:
    • redirect

      public Request redirect(Request request, Response response, Response.CompleteListener listener)
      Redirects the given response asynchronously.
      Parameters:
      request - the original request that triggered the redirect
      response - the response to the original request
      listener - the listener that receives response events
      Returns:
      the request to the redirected location
    • extractRedirectURI

      public URI extractRedirectURI(Response response)
      Extracts and sanitizes (by making it absolute and escaping paths and query parameters) the redirect URI of the given response.
      Parameters:
      response - the response to extract the redirect URI from
      Returns:
      the absolute redirect URI, or null if the response does not contain a valid redirect location
    • fail

      protected void fail(Request request, Response response, Throwable failure)
    • fail

      protected void fail(Request request, Throwable failure, Response response)