Lazarus Pascal
Lazarus Pascal
HTTP Session Logging
Demonstrates how to use the SessionLogFilename property to log HTTP requests and responses to a file.Chilkat Lazarus Pascal Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Http;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
http: THttp;
html: string;
begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := THttp.Create;
// Set the SessionLogFilename property so that the Chilkat HTTP component
// logs the exact HTTP requests and responses to a file.
// The SessionLogFilename may be used with any of the HTTP
// methods for sending GET, POST, PUT, DELETE, HEAD, etc.
http.SessionLogFilename := 'c:/temp/httpSessionLog.txt';
// Try a simple HTTP GET and then examine the session log:
html := http.QuickGetStr('http://www.chilkatsoft.com/httpTest/abc.html');
if (http.LastMethodSuccess <> True) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
// The contents of the session log file after doing
// the GET request:
// ---- Sending ----
// GET /httpTest/abc.html HTTP/1.1
// Accept: */*
// Accept-Encoding: gzip
// Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
// Accept-Language: en-us,en;q=0.5
// Host: www.chilkatsoft.com
// Connection: Keep-Alive
//
//
// ---- Received ----
// HTTP/1.1 200 OK
// Content-Length: 37
// Content-Type: text/html
// Last-Modified: Wed, 09 Dec 2009 14:55:08 GMT
// Accept-Ranges: bytes
// ETag: "4eecd499df78ca1:28b"
// Server: Microsoft-IIS/6.0
// X-Powered-By: ASP.NET
// Date: Wed, 09 Dec 2009 15:15:50 GMT
//
// <html>
// <body>
// ABC
// </body>
// </html>
//
http.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.