Sample code for 30+ languages & platforms
React Native

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat React Native Downloads

React Native
import { Http, HttpResponse } from '@chilkat/react-native'

async function chilkatExample() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const 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.followRedirects = false;

  const resp = new HttpResponse();
  try {
    await http.httpNoBodyAsync('GET', 'http://yandex.ru/', resp);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  let status = resp.statusCode;
  console.log(`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.

  let loopCount = 0;

  while (status === 302) {

    console.log(`Redirect URL: ${http.finalRedirectUrl}`);

    const nextUrl = http.finalRedirectUrl;
    try {
      await http.httpNoBodyAsync('GET', nextUrl, resp);
    } catch {
      console.log(http.lastErrorText);
      return;
    }

    status = resp.statusCode;
    console.log(`HTTP Response Status: ${status}`);

    // For safety, prevent infinite loops by
    // keeping a loopCount and only allows following a max 
    // of 10 redirects:
    loopCount++;
    if (loopCount > 10) {
      console.log('Too many redirects.');
      return;
    }
  }
}