Tcl
Tcl
REST POST JSON using Gzip Content Encoding
See more REST Examples
Demonstrates how to send a JSON POST using the gzip Content-Encoding.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# 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"
# }
#
set json [new_CkJsonObject]
CkJsonObject_UpdateString $json "lists[0].id" "1511199999"
CkJsonObject_UpdateBool $json "confirmed" 0
CkJsonObject_UpdateString $json "email_addresses[0].email_address" "support@chilkatsoft.com"
CkJsonObject_UpdateString $json "first_name" "Matt"
CkJsonObject_UpdateString $json "last_name" "Smith"
set rest [new_CkRest]
set success [CkRest_Connect $rest "api.constantcontact.com" 443 1 1]
if {$success != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkJsonObject $json
delete_CkRest $rest
exit
}
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"
set sbReq [new_CkStringBuilder]
CkJsonObject_EmitSb $json $sbReq
# Send the POST.
set sbResp [new_CkStringBuilder]
set success [CkRest_FullRequestSb $rest "POST" "/v2/contacts?action_by=ACTION_BY_VISITOR&api_key=xxxxxxx" $sbReq $sbResp]
if {$success != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkJsonObject $json
delete_CkRest $rest
delete_CkStringBuilder $sbReq
delete_CkStringBuilder $sbResp
exit
}
puts "Response body:"
puts [CkStringBuilder_getAsString $sbResp]
if {[CkRest_get_ResponseStatusCode $rest] != 200} then {
puts "Received error response code: [CkRest_get_ResponseStatusCode $rest]"
delete_CkJsonObject $json
delete_CkRest $rest
delete_CkStringBuilder $sbReq
delete_CkStringBuilder $sbResp
exit
}
set jsonResp [new_CkJsonObject]
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..
delete_CkJsonObject $json
delete_CkRest $rest
delete_CkStringBuilder $sbReq
delete_CkStringBuilder $sbResp
delete_CkJsonObject $jsonResp