Android™
Android™
Manually Follow HTTP Redirects
See more HTTP Examples
Demonstrates how to manually follow redirects for an HTTP GET.Chilkat Android™ Downloads
// Important: Don't forget to include the call to System.loadLibrary
// as shown at the bottom of this code sample.
package com.test;
import android.app.Activity;
import com.chilkatsoft.*;
import android.widget.TextView;
import android.os.Bundle;
public class SimpleActivity extends Activity {
private static final String TAG = "Chilkat";
// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkHttp http = new CkHttp();
// 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.put_FollowRedirects(false);
CkHttpResponse resp = new CkHttpResponse();
success = http.HttpNoBody("GET","http://yandex.ru/",resp);
if (success == false) {
Log.i(TAG, http.lastErrorText());
return;
}
int status = resp.get_StatusCode();
Log.i(TAG, "HTTP Response Status: " + String.valueOf(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)) {
Log.i(TAG, "Redirect URL: " + http.finalRedirectUrl());
String nextUrl = http.finalRedirectUrl();
success = http.HttpNoBody("GET",nextUrl,resp);
if (success == false) {
Log.i(TAG, http.lastErrorText());
return;
}
status = resp.get_StatusCode();
Log.i(TAG, "HTTP Response Status: " + String.valueOf(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) {
Log.i(TAG, "Too many redirects.");
return;
}
}
}
static {
System.loadLibrary("chilkat");
// Note: If the incorrect library name is passed to System.loadLibrary,
// then you will see the following error message at application startup:
//"The application <your-application-name> has stopped unexpectedly. Please try again."
}
}