Delphi ActiveX
Delphi ActiveX
Http Digest Authentication
Demonstrates theDigestAuth property to do HTTP Digest Authentication.
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;
jsonResponse: WideString;
begin
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := TChilkatHttp.Create(Self);
// To use HTTP Digest Authentication:
http.Login := 'myLogin';
http.Password := 'myPassword';
http.DigestAuth := 1;
// If you would like to see the HTTP session log to see how
// HTTP digest authentication worked.
http.SessionLogFilename := 'c:/temp/qa_output/sessionLog.txt';
// Run the test using this URL with the credentials above.
// (Works while httpbin.org keeps the test endpoint available.)
jsonResponse := http.QuickGetStr('https://httpbin.org/digest-auth/auth/myLogin/myPassword');
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);
// Output:
// Response status code: 200
// {
// "authenticated": true,
// "user": "myLogin"
// }
// -----------------------------------------------
// Here are the contents of the sessionLog.txt
// ---- Sending Sat, 30 Aug 2025 11:23:12 GMT ----
// GET /digest-auth/auth/myLogin/myPassword HTTP/1.1
// Host: httpbin.org
// Accept: */*
// Accept-Encoding: gzip
//
//
// ---- Received Sat, 30 Aug 2025 11:23:12 GMT ----
// HTTP/1.1 401 UNAUTHORIZED
// Date: Sat, 30 Aug 2025 11:23:12 GMT
// Content-Type: text/html; charset=utf-8
// Content-Length: 0
// Connection: keep-alive
// Server: gunicorn/19.9.0
// WWW-Authenticate: Digest realm="me@kennethreitz.com", nonce="fbc6733e2f4d126e7a92d19918f42b0f", qop="auth", opaque="5a14177dc4089cb22c019e6df4fdaadf", algorithm=MD5, stale=FALSE
// Set-Cookie: stale_after=never; Path=/
// Set-Cookie: fake=fake_value; Path=/
// Access-Control-Allow-Origin: *
// Access-Control-Allow-Credentials: true
//
//
// ---- Sending Sat, 30 Aug 2025 11:23:12 GMT ----
// GET /digest-auth/auth/myLogin/myPassword HTTP/1.1
// Host: httpbin.org
// Accept: */*
// Accept-Encoding: gzip
// Authorization: Digest ****
//
//
// ---- Received Sat, 30 Aug 2025 11:23:12 GMT ----
// HTTP/1.1 200 OK
// Date: Sat, 30 Aug 2025 11:23:13 GMT
// Content-Type: application/json
// Content-Length: 50
// Connection: keep-alive
// Server: gunicorn/19.9.0
// Set-Cookie: fake=fake_value; Path=/
// Access-Control-Allow-Origin: *
// Access-Control-Allow-Credentials: true
//
// {
// "authenticated": true,
// "user": "myLogin"
// }
end;