Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) REST POST JSON using Gzip Content EncodingDemonstrates how to send a JSON POST using the gzip Content-Encoding.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, StringBuilder, Rest, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var json: HCkJsonObject; rest: HCkRest; success: Boolean; sbReq: HCkStringBuilder; sbResp: HCkStringBuilder; jsonResp: HCkJsonObject; begin // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Use the online tool at https://tools.chilkat.io/Default.cshtml // to generate the JSON code that creates this JSON: // { // "lists": [ // { // "id": "1511199999" // } // ], // "confirmed": false, // "email_addresses": [ // { // "email_address": "support@chilkatsoft.com" // } // ], // "first_name": "Matt", // "last_name": "Smith" // } // json := CkJsonObject_Create(); CkJsonObject_UpdateString(json,'lists[0].id','1511199999'); CkJsonObject_UpdateBool(json,'confirmed',False); CkJsonObject_UpdateString(json,'email_addresses[0].email_address','support@chilkatsoft.com'); CkJsonObject_UpdateString(json,'first_name','Matt'); CkJsonObject_UpdateString(json,'last_name','Smith'); rest := CkRest_Create(); success := CkRest_Connect(rest,'api.constantcontact.com',443,True,True); if (success <> True) then begin Memo1.Lines.Add(CkRest__lastErrorText(rest)); Exit; end; CkRest_AddHeader(rest,'Content-Type','application/json'); CkRest_AddHeader(rest,'Authorization','Bearer xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx'); // Tell the server you'll accept only an application/json response. CkRest_AddHeader(rest,'Accept','application/json'); // Indicate that we'll be sending the request body gzipped. CkRest_AddHeader(rest,'Content-Encoding','gzip'); sbReq := CkStringBuilder_Create(); CkJsonObject_EmitSb(json,sbReq); // Send the POST. sbResp := CkStringBuilder_Create(); success := CkRest_FullRequestSb(rest,'POST','/v2/contacts?action_by=ACTION_BY_VISITOR&api_key=xxxxxxx',sbReq,sbResp); if (success <> True) then begin Memo1.Lines.Add(CkRest__lastErrorText(rest)); Exit; end; Memo1.Lines.Add('Response body:'); Memo1.Lines.Add(CkStringBuilder__getAsString(sbResp)); if (CkRest_getResponseStatusCode(rest) <> 200) then begin Memo1.Lines.Add('Received error response code: ' + IntToStr(CkRest_getResponseStatusCode(rest))); Exit; end; jsonResp := CkJsonObject_Create(); CkJsonObject_LoadSb(jsonResp,sbResp); // Use the online tool at https://tools.chilkat.io/jsonParse.cshtml // to generate the JSON code that parses the JSON response.. CkJsonObject_Dispose(json); CkRest_Dispose(rest); CkStringBuilder_Dispose(sbReq); CkStringBuilder_Dispose(sbResp); CkJsonObject_Dispose(jsonResp); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.