Sample code for 30+ languages & platforms
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

Lazarus Pascal
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.