Delphi ActiveX
Delphi ActiveX
Http Follow Redirects
See more HTTP Examples
Demonstrates how to automatically follow redirects.Chilkat Delphi ActiveX Downloads
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;