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

Socket Convenience Method: BuildHttpGetRequest

See more Socket/SSL/TLS Examples

Demonstrates the BuildHttpGetRequest method.

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.HttpRequest,
  Chilkat.Socket;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  socket: TSocket;
  url: string;
  reqStr: string;
  req: THttpRequest;

begin
  //  The BuildHttpGetRequest method is a convenience method for building
  //  an HTTP GET request.  Normally, an application would use Chilkat's HTTP or REST API's
  //  for sending HTTP requests.  

  socket := TSocket.Create;

  url := 'http://www.chilkatsoft.com/test.asp?x=123&y=456';
  reqStr := socket.BuildHttpGetRequest(url);
  WriteLn(reqStr);
  WriteLn('----');

  //  The result is:

  //  	GET /test.asp?x=123&y=456 HTTP/1.1
  //  	Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  //  	Connection: keep-alive
  //  	User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
  //  	Accept-Language: en-us,en;q=0.5
  //  	Host: www.chilkatsoft.com

  //  The result is meant to look like a request from a browser.

  //  The same thing can be done using the Url and HttpRequest classes, but with more flexibility.

  req := THttpRequest.Create;
  req.SetFromUrl(url);
  reqStr := req.GenerateRequestText();
  WriteLn(reqStr);
  WriteLn('----');

  //  The result is:

  //  	GET /test.asp?x=123&y=456 HTTP/1.1
  //  	Host: domain

  //  Add some headers..
  req.AddHeader('Host','www.chilkatsoft.com');
  req.AddHeader('Accept-Language','en-us,en;q=0.5');
  req.AddHeader('Some-Other-Header','123456');

  reqStr := req.GenerateRequestText();
  WriteLn(reqStr);

  //  The result is now:

  //  	GET /test.asp?x=123&y=456 HTTP/1.1
  //  	Host: www.chilkatsoft.com
  //  	Accept-Language: en-us,en;q=0.5
  //  	Some-Other-Header: 123456


  socket.Free;
  req.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.