Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Socket Convenience Method: BuildHttpGetRequest
See more Socket/SSL/TLS Examples
Demonstrates the BuildHttpGetRequest method.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.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.