Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Adding Cookies to an HTTP Request
See more HTTP Examples
Demonstrates how to add one or more cookies to an HTTP request.Chilkat Pascal (Lazarus/Delphi) 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,
Chilkat.HttpRequest,
Chilkat.HttpResponse;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
req: THttpRequest;
domain: string;
port: Integer;
ssl: Boolean;
resp: THttpResponse;
html: string;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := THttp.Create;
// The Cookie header field has this format:
// Cookie: name1=value1 [; name2=value2] ...
// Build an HTTP POST request:
req := THttpRequest.Create;
req.SetFromUrl('http://www.chilkatsoft.com/echoPost.asp');
req.HttpVerb := 'POST';
req.AddParam('param1','value1');
req.AddParam('param2','value2');
// To add cookies to any HTTP request sent by a Chilkat HTTP method
// that uses an HTTP request object, add the cookies to the
// request object by calling AddHeader.
// Add two cookies:
req.AddHeader('Cookie','user="mary"; city="Chicago"');
// Send the HTTP POST.
// (The cookies are sent as part of the HTTP header.)
domain := 'www.chilkatsoft.com';
port := 80;
ssl := False;
resp := THttpResponse.Create;
success := http.HttpSReq(domain,port,ssl,req,resp);
if (success = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
// Display the HTML body of the response.
if (resp.StatusCode = 200) then
begin
// Show the last HTTP request header sent, which should include
// our cookies...
WriteLn(http.LastHeader);
end
else
begin
WriteLn('HTTP Response Status = ' + resp.StatusCode);
end;
WriteLn('---------------------');
// Some Chilkat HTTP methods do not use an HTTP request object.
// For these methods, such as for QuickGetStr, cookies (or any HTTP request header)
// are added by calling SetRequestHeader.
http.SetRequestHeader('Cookie','user="mary"; city="Chicago"');
html := http.QuickGetStr('http://www.w3.org/');
if (http.LastMethodSuccess <> True) then
begin
WriteLn(http.LastErrorText);
end
else
begin
// Show the last HTTP request header sent, which should include
// our cookies...
WriteLn(http.LastHeader);
end;
http.Free;
req.Free;
resp.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.