Tcl
Tcl
HTTP POST x-www-form-urlencoded
Demonstrates how to send a simple x-www-form-urlencoded POST.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
set http [new_CkHttp]
set jsonStr "{ some json ... }"
set req [new_CkHttpRequest]
# This query parameter just happens to be named "json" and contains JSON text.
CkHttpRequest_AddParam $req "json" $jsonStr
# We can optionally add more query parameters.
CkHttpRequest_AddParam $req "abc" "123"
CkHttpRequest_AddParam $req "xml" "<abc>123</abc>"
# Note: Just because we passed a query param named "json" or "xml" means nothing special. It's still just
# a name=value query parameter..
CkHttpRequest_put_HttpVerb $req "POST"
CkHttpRequest_put_ContentType $req "application/x-www-form-urlencoded"
set resp [new_CkHttpResponse]
set success [CkHttp_HttpReq $http "http://example.com/xyz/connect/report" $req $resp]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkHttpResponse $resp
exit
}
if {[CkHttpResponse_get_StatusCode $resp] != 200} then {
puts "Hey, I didn't receive the expected response status code!"
puts "status code = [CkHttpResponse_get_StatusCode $resp]"
}
# Could be error text if the status code wasn't what we expected, or could be the response
# body you're seeking..
set responseBody [CkHttpResponse_bodyStr $resp]
puts "$responseBody"
set fac [new_CkFileAccess]
set filepath "some file path"
set success [CkFileAccess_WriteEntireTextFile $fac $filepath $responseBody "utf-8" 0]
if {$success != 1} then {
puts [CkFileAccess_lastErrorText $fac]
}
delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkHttpResponse $resp
delete_CkFileAccess $fac