Sample code for 30+ languages & platforms
Delphi ActiveX

Http Follow Redirects

See more HTTP Examples

Demonstrates how to automatically follow redirects.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
http: TChilkatHttp;
url: WideString;
jsonResponse: WideString;

begin
http := TChilkatHttp.Create(Self);

// 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.)

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

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

jsonResponse := http.QuickGetStr(url);
if (http.LastMethodSuccess = 0) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
    Exit;
  end;

Memo1.Lines.Add('Response status code: ' + IntToStr(http.LastStatus));
Memo1.Lines.Add(jsonResponse);

// How to tell if the request was redirected, and if so,
// what was the final redirect URL?
Memo1.Lines.Add('Was Redirected: ' + IntToStr(Ord(http.WasRedirected)));
Memo1.Lines.Add('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" }
end;