Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Caching cookies in-memory.

See more HTTP Examples

Caching cookies in-memory. To automatically save cookies to an in-memory cache, set the CookieDir property equal to the keyword "memory". Also, set the SaveCookies property = _TRUE_. If the SendCookies property = _TRUE_, then any cached cookies are automatically re-sent with subsequent GETs and POSTs.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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;
  xmlStr: string;

begin
  //  This example assumes the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  http := THttp.Create;

  //  To save cookies to an in-memory cache, set the
  //  CookieDir equal to "memory".  Also,
  //  set the SaveCookies property:
  http.CookieDir := 'memory';
  http.SaveCookies := True;

  //  To cause cached cookies to be sent with 
  //  subsequent HTTP requests, set the SendCookies
  //  property = True.
  http.SendCookies := True;

  //  Any methods that do a GET, POST, etc. will save 
  //  cookies to the CookieDir (which in this case is an 
  //  in-memory cache.

  html := http.QuickGetStr('https://www.paypal.com/');

  //  To fetch the XML cookie(s) for a domain, call GetCookieXml:

  xmlStr := http.GetCookieXml('paypal.com');

  WriteLn(xmlStr);

  //  It's content will look something like this:

  //  <cookies>
  //      <cookie key=".paypal.com,/" v="0" secure="yes">
  //          <navcmd>_home-general</navcmd>
  //          <HttpOnly />
  //          <cwrClyrK4LoCV1fydGbAxiNL6iG>9cz...</cwrClyrK4LoCV1fydGbAxiNL6iG>
  //      </cookie>
  //  </cookies>

  //  If another HTTP request is sent, the cookies should
  //  be added:
  html := http.QuickGetStr('https://www.paypal.com/');

  //  Check the LastHeader property to see the MIME header
  //  of the last HTTP request sent.
  //  The "Cookie" header field should be present.
  WriteLn('--- LastHeader ---');
  WriteLn(http.LastHeader);


  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.