Sample code for 30+ languages & platforms
DataFlex

REST POST JSON using Gzip Content Encoding

See more REST Examples

Demonstrates how to send a JSON POST using the gzip Content-Encoding.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoJson
    Handle hoRest
    Variant vSbReq
    Handle hoSbReq
    Variant vSbResp
    Handle hoSbResp
Resp    Handle hoJsonResp
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

    // 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"
    // }
    // 

    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get ComUpdateString Of hoJson "lists[0].id" "1511199999" To iSuccess
    Get ComUpdateBool Of hoJson "confirmed" False To iSuccess
    Get ComUpdateString Of hoJson "email_addresses[0].email_address" "support@chilkatsoft.com" To iSuccess
    Get ComUpdateString Of hoJson "first_name" "Matt" To iSuccess
    Get ComUpdateString Of hoJson "last_name" "Smith" To iSuccess

    Get Create (RefClass(cComChilkatRest)) To hoRest
    If (Not(IsComObjectCreated(hoRest))) Begin
        Send CreateComObject of hoRest
    End

    Get ComConnect Of hoRest "api.constantcontact.com" 443 True True To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComAddHeader Of hoRest "Content-Type" "application/json" To iSuccess
    Get ComAddHeader Of hoRest "Authorization" "Bearer xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx" To iSuccess

    // Tell the server you'll accept only an application/json response.
    Get ComAddHeader Of hoRest "Accept" "application/json" To iSuccess

    // Indicate that we'll be sending the request body gzipped.
    Get ComAddHeader Of hoRest "Content-Encoding" "gzip" To iSuccess

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbReq
    If (Not(IsComObjectCreated(hoSbReq))) Begin
        Send CreateComObject of hoSbReq
    End
    Get pvComObject of hoSbReq to vSbReq
    Get ComEmitSb Of hoJson vSbReq To iSuccess

    // Send the POST.
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResp
    If (Not(IsComObjectCreated(hoSbResp))) Begin
        Send CreateComObject of hoSbResp
    End
    Get pvComObject of hoSbReq to vSbReq
    Get pvComObject of hoSbResp to vSbResp
    Get ComFullRequestSb Of hoRest "POST" "/v2/contacts?action_by=ACTION_BY_VISITOR&api_key=xxxxxxx" vSbReq vSbResp To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Response body:"
    Get ComGetAsString Of hoSbResp To sTemp1
    Showln sTemp1

    Get ComResponseStatusCode Of hoRest To iTemp1
    If (iTemp1 <> 200) Begin
        Get ComResponseStatusCode Of hoRest To iTemp1
        Showln "Received error response code: " iTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResp
    If (Not(IsComObjectCreated(hoJsonResp))) Begin
        Send CreateComObject of hoJsonResp
    End
    Get pvComObject of hoSbResp to vSbResp
    Get ComLoadSb Of hoJsonResp vSbResp To iSuccess

    // Use the online tool at https://tools.chilkat.io/jsonParse.cshtml
    // to generate the JSON code that parses the JSON response..


End_Procedure