Tcl
Tcl
TicketBAI -- Send HTTP POST
See more TicketBAI Examples
Demonstrates how to send a TicketBAI POST and get the response.Chilkat Tcl Downloads
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