Sample code for 30+ languages & platforms
Dart

Http Follow Redirects

See more HTTP Examples

Demonstrates how to automatically follow redirects.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final http = CkHttp();

  // If you would like to see the HTTP session log to see how 
  // HTTP redirects were followed.
  http.sessionLogFilename = 'c:/temp/qa_output/sessionLog.txt';

  // Run the test using this URL.
  // (Works while httpbin.org keeps the test endpoint available.)

  final url = 'https://httpbin.org/redirect-to?url={\$redirectUrl}&status_code={\$statusCode}';

  http.setUrlVar('redirectUrl', 'https://chilkatsoft.com/helloWorld.json');
  http.setUrlVar('statusCode', '302');

  final String jsonResponse;
  try {
    jsonResponse = http.quickGetStr(url);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Response status code: ${http.lastStatus}');
  print(jsonResponse);

  // How to tell if the request was redirected, and if so,
  // what was the final redirect URL?
  print('Was Redirected: ${http.wasRedirected}');
  print('Final Redirect URL: ${http.finalRedirectUrl}');

  // Output:

  // Response status code: 200
  // { "hello": "world" }
  // Was Redirected: True
  // Final Redirect URL: https://chilkatsoft.com/helloWorld.json

  // -----------------------------------------------
  // Here are the contents of the sessionLog.txt

  // ---- Sending Sat, 30 Aug 2025 11:41:37 GMT ----
  // GET /redirect-to?url=https%3A%2F%2Fchilkatsoft.com%2FhelloWorld.json&status_code=302 HTTP/1.1
  // Host: httpbin.org
  // Accept: */*
  // Accept-Encoding: gzip
  // 
  // 
  // ---- Received Sat, 30 Aug 2025 11:41:37 GMT ----
  // HTTP/1.1 302 FOUND
  // Date: Sat, 30 Aug 2025 11:41:38 GMT
  // Content-Type: text/html; charset=utf-8
  // Content-Length: 0
  // Connection: keep-alive
  // Server: gunicorn/19.9.0
  // Location: https://chilkatsoft.com/helloWorld.json
  // Access-Control-Allow-Origin: *
  // Access-Control-Allow-Credentials: true
  // 
  // 
  // ---- Sending Sat, 30 Aug 2025 11:41:38 GMT ----
  // GET /helloWorld.json HTTP/1.1
  // Host: chilkatsoft.com
  // Accept: */*
  // Accept-Encoding: gzip
  // 
  // 
  // ---- Received Sat, 30 Aug 2025 11:41:38 GMT ----
  // HTTP/1.1 200 OK
  // Content-Type: application/json
  // Last-Modified: Sun, 20 Aug 2023 11:36:27 GMT
  // Accept-Ranges: bytes
  // ETag: "34c27f8e5ad3d91:0"
  // Server: Microsoft-IIS/10.0
  // X-Powered-By: ASP.NET
  // Date: Sat, 30 Aug 2025 11:41:38 GMT
  // Content-Length: 22
  // 
  // { "hello": "world" }
}