Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
HTTPS GET URL with URL Encoded Query Params
See more HTTP Examples
Creates a URL with URL encoded query params, and sends an HTTPS GET to the URL.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.StringBuilder;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
sbUrl: TStringBuilder;
sbValue: TStringBuilder;
http: THttp;
responseBody: string;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Create a URL with URL-encoded query params.
sbUrl := TStringBuilder.Create;
sbUrl.Append('https://www.example.com/something?');
// If we know a query param value does not have any special chars requiring URL encoding,
// just add it. In this case, there is no need to URL encode "123" because "123" url encoded is still just "123".
sbUrl.Append('abc=123&xyz=');
sbValue := TStringBuilder.Create;
sbValue.Append('this is a test');
sbUrl.Append('msg=');
sbUrl.Append(sbValue.GetEncoded('url','utf-8'));
// sbUrl contains: https://www.example.com/something?abc=123&xyz=msg=this%20is%20a%20test
WriteLn(sbUrl.GetAsString());
// Send the GET request and get the response body, which is assumed to be text of some sort (HTML, XML, JSON, etc.)
// (Chilkat automatically decompresses gzipped responses)
http := THttp.Create;
responseBody := http.QuickGetStr(sbUrl.GetAsString());
if (http.LastMethodSuccess = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
WriteLn('Response Body:');
WriteLn(responseBody);
sbUrl.Free;
sbValue.Free;
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.