Sample code for 30+ languages & platforms
Java

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

        // The FollowRedirects property controls whether redirects
        // are automatically followed.  The default behavior is to
        // automatically follow redirects.

        // Explicitly set FollowRedirects so that redirects are NOT automatically taken:
        http.setFollowRedirects(false);

        HttpResponse resp = new HttpResponse();
        try {
            http.httpNoBody("GET", "http://yandex.ru/", resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        int status = resp.getStatusCode();
        System.out.println("HTTP Response Status: " + status);

        // The FinalRedirectUrl property will contain the redirect URL
        // If FollowRedirects was equal to true, then all of the
        // intermediate redirects (if any) would be followed until
        // there were no more redirects.  However, because
        // FollowRedirects is not true, FinalRedirectUrl contains
        // the next redirect URL.

        int loopCount = 0;

        while (status == 302) {
            System.out.println("Redirect URL: " + http.getFinalRedirectUrl());

            String nextUrl = http.getFinalRedirectUrl();
            try {
                http.httpNoBody("GET", nextUrl, resp);
            } catch (ChilkatException e) {
                System.out.println(e.getLastErrorText());
                return;
            }

            status = resp.getStatusCode();
            System.out.println("HTTP Response Status: " + status);

            // For safety, prevent infinite loops by
            // keeping a loopCount and only allows following a max
            // of 10 redirects:
            loopCount = loopCount + 1;
            if (loopCount > 10) {
                System.out.println("Too many redirects.");
                return;
            }
        }
    }
}