Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Demonstrates the Http.QuickRequestParams Method
See more HTTP Examples
Demonstrates how to use the Http.QuickRequestParams method. This is where query params can be provided non-URL-encoded in JSON format.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.FileAccess,
Chilkat.HttpResponse,
Chilkat.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
queryParams: TJsonObject;
sessionLogPath: string;
resp: THttpResponse;
fac: TFileAccess;
sessionLog: 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;
// Demonstrate sending a GET request with query parameters.
queryParams := TJsonObject.Create;
queryParams.UpdateInt('limit',100);
queryParams.UpdateString('email','joe@example.com');
queryParams.UpdateString('token','VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuLi4=');
// Set a session log filename so we can examine the exact request that is sent.
sessionLogPath := 'qa_output/sessionLog.txt';
http.SessionLogFilename := sessionLogPath;
// Send the GET request to an endpoint. We don't care about the response. The purpose of this example
// is to see the exact HTTP request that is sent..
resp := THttpResponse.Create;
success := http.HttpParams('GET','https://www.chilkatsoft.com/echoPostBody.asp',queryParams,resp);
if (success = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
fac := TFileAccess.Create;
sessionLog := fac.ReadEntireTextFile(sessionLogPath,'utf-8');
WriteLn(sessionLog);
success := fac.FileDelete(sessionLogPath);
// This is the exact GET request that was sent.
// Notice how each query parameter is URL encoded and added to the HTTP start line of the request.
// GET /echoPostBody.asp?limit=100&email=joe%40example.com&token=VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuLi4%3D HTTP/1.1
// Host: www.chilkatsoft.com
// Accept: */*
// Accept-Encoding: gzip
http.Free;
queryParams.Free;
resp.Free;
fac.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.