Sample code for 30+ languages & platforms
Delphi DLL

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 Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
sbUrl: HCkStringBuilder;
sbValue: HCkStringBuilder;
http: HCkHttp;
responseBody: PWideChar;

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 := CkStringBuilder_Create();
CkStringBuilder_Append(sbUrl,'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".
CkStringBuilder_Append(sbUrl,'abc=123&xyz=');

sbValue := CkStringBuilder_Create();
CkStringBuilder_Append(sbValue,'this is a test');

CkStringBuilder_Append(sbUrl,'msg=');
CkStringBuilder_Append(sbUrl,CkStringBuilder__getEncoded(sbValue,'url','utf-8'));

// sbUrl contains:  https://www.example.com/something?abc=123&xyz=msg=this%20is%20a%20test
Memo1.Lines.Add(CkStringBuilder__getAsString(sbUrl));

// 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 := CkHttp_Create();
responseBody := CkHttp__quickGetStr(http,CkStringBuilder__getAsString(sbUrl));
if (CkHttp_getLastMethodSuccess(http) = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(responseBody);

CkStringBuilder_Dispose(sbUrl);
CkStringBuilder_Dispose(sbValue);
CkHttp_Dispose(http);

end;