Delphi DLL
Delphi DLL
HTTP POST x-www-form-urlencoded
Demonstrates how to send a simple x-www-form-urlencoded POST.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpRequest, HttpResponse, FileAccess;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
jsonStr: PWideChar;
req: HCkHttpRequest;
resp: HCkHttpResponse;
responseBody: PWideChar;
fac: HCkFileAccess;
filepath: PWideChar;
begin
success := False;
http := CkHttp_Create();
jsonStr := '{ some json ... }';
req := CkHttpRequest_Create();
// This query parameter just happens to be named "json" and contains JSON text.
CkHttpRequest_AddParam(req,'json',jsonStr);
// We can optionally add more query parameters.
CkHttpRequest_AddParam(req,'abc','123');
CkHttpRequest_AddParam(req,'xml','<abc>123</abc>');
// Note: Just because we passed a query param named "json" or "xml" means nothing special. It's still just
// a name=value query parameter..
CkHttpRequest_putHttpVerb(req,'POST');
CkHttpRequest_putContentType(req,'application/x-www-form-urlencoded');
resp := CkHttpResponse_Create();
success := CkHttp_HttpReq(http,'http://example.com/xyz/connect/report',req,resp);
if (success = False) then
begin
Memo1.Lines.Add(CkHttp__lastErrorText(http));
Exit;
end;
if (CkHttpResponse_getStatusCode(resp) <> 200) then
begin
Memo1.Lines.Add('Hey, I didn''t receive the expected response status code!');
Memo1.Lines.Add('status code = ' + IntToStr(CkHttpResponse_getStatusCode(resp)));
end;
// Could be error text if the status code wasn't what we expected, or could be the response
// body you're seeking..
responseBody := CkHttpResponse__bodyStr(resp);
Memo1.Lines.Add(responseBody);
fac := CkFileAccess_Create();
filepath := 'some file path';
success := CkFileAccess_WriteEntireTextFile(fac,filepath,responseBody,'utf-8',False);
if (success <> True) then
begin
Memo1.Lines.Add(CkFileAccess__lastErrorText(fac));
end;
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
CkHttpResponse_Dispose(resp);
CkFileAccess_Dispose(fac);
end;