Java
Chilkat2 Java
Manually Follow HTTP Redirects
See more HTTP Examples
Demonstrates how to manually follow redirects for an HTTP GET.Chilkat Java Downloads
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;
}
}
}
}