Sample code for 30+ languages & platforms
Tcl

TicketBAI -- Send HTTP POST

See more TicketBAI Examples

Demonstrates how to send a TicketBAI POST and get the response.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set http [new_CkHttp]

set success [CkHttp_SetSslClientCertPfx $http "your.pfx" "pfx_password"]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    exit
}

# Get the XML we wish to send in the body of the request.
set sbXml [new_CkStringBuilder]

set success [CkStringBuilder_LoadFile $sbXml "qa_data/payload.xml" "utf-8"]
if {$success == 0} then {
    puts "Failed to load XML that is to be the HTTP request body"
    delete_CkHttp $http
    delete_CkStringBuilder $sbXml
    exit
}

# Build the following JSON

# { 
#     "con": "LROE", 
#     "apa": "1.1", 
#     "inte": { 
#         "nif": "número de identificación fiscal", 
#         "nrs": "nombre o Razón social", 
#         "ap1": "primer apellido", 
#         "ap2": "segundo apellido" 
#     }, 
#     "drs": { 
#     "mode": "140", 
#     "ejer": "ejercicio" 
#     } 
# }

# Use this online tool to generate code from sample JSON: 
# Generate Code to Create JSON

set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "con" "LROE"
CkJsonObject_UpdateString $json "apa" "1.1"
CkJsonObject_UpdateString $json "inte.nif" "número de identificación fiscal"
CkJsonObject_UpdateString $json "inte.nrs" "nombre o Razón social"
CkJsonObject_UpdateString $json "inte.ap1" "primer apellido"
CkJsonObject_UpdateString $json "inte.ap2" "segundo apellido"
CkJsonObject_UpdateString $json "drs.mode" "140"
CkJsonObject_UpdateString $json "drs.ejer" "ejercicio"

# Add required headers...
CkHttp_SetRequestHeader $http "eus-bizkaia-n3-version" "1.0"
CkHttp_SetRequestHeader $http "eus-bizkaia-n3-content-type" "application/xml"
CkHttp_SetRequestHeader $http "eus-bizkaia-n3-data" [CkJsonObject_emit $json]

set url "https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena"
set resp [new_CkHttpResponse]

CkHttp_put_UncommonOptions $http "SendGzipped"
set success [CkHttp_HttpSb $http "POST" $url $sbXml "utf-8" "application/octet-stream" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkStringBuilder $sbXml
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    exit
}

CkHttp_ClearHeaders $http

puts "response status code: [CkHttpResponse_get_StatusCode $resp]"

# Examine the response (it is already decompressed)
puts "response body:"
puts [CkHttpResponse_bodyStr $resp]

delete_CkHttp $http
delete_CkStringBuilder $sbXml
delete_CkJsonObject $json
delete_CkHttpResponse $resp