Sample code for 30+ languages & platforms
Tcl Requires Chilkat v11.0.0+

HTTPS PUT application/x-www-form-urlencoded

See more HTTP Examples

Demonstrates two ways of sending an HTTPS PUT application/x-www-form-urlencoded request.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

#  The 1st example sends a PUT with the query params in the URL.
#  The body of the request will be empty.
set url "https://example.com/leads/12345678?uid=XXXX&apikey=YYYYYY&notes=Test_Note"

#  Sends the following request:

#  PUT /leads/12345678?uid=XXXX&apikey=YYYYYY&notes=Test_Note HTTP/1.1
#  Host: example.com
#  Accept: */*
#  Accept-Encoding: gzip
#  Content-Length: 0
#  

set resp [new_CkHttpResponse]

set success [CkHttp_HttpStr $http "PUT" $url "" "" "application/x-www-form-urlencoded" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    exit
}

puts "Response status code = [CkHttpResponse_get_StatusCode $resp]"
puts "Response body: [CkHttpResponse_bodyStr $resp]"

#  -----------------------------------------------------------------------
#  Now we send the same request, but instead the query params are in the HTTP request body.

set req [new_CkHttpRequest]

CkHttpRequest_put_HttpVerb $req "PUT"
CkHttpRequest_put_Path $req "/leads/12345678"
CkHttpRequest_AddParam $req "uid" "XXXX"
CkHttpRequest_AddParam $req "apikey" "YYYYYY"
CkHttpRequest_AddParam $req "notes" "Test_Note"

#  Sends the following request:

#  POST /leads/12345678 HTTP/1.1
#  Host: example.com
#  Content-Type: application/x-www-form-urlencoded
#  Content-Length: 38
#  
#  uid=XXXX&apikey=YYYYYY&notes=Test_Notereq.HttpVerb = "POST";
CkHttpRequest_put_HttpVerb $req "POST"
CkHttpRequest_put_ContentType $req "application/x-www-form-urlencoded"

set success [CkHttp_HttpReq $http "https://example.com/leads/12345678" $req $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    delete_CkHttpRequest $req
    exit
}

puts "Response status code = [CkHttpResponse_get_StatusCode $resp]"
puts "Response body: [CkHttpResponse_bodyStr $resp]"

delete_CkHttp $http
delete_CkHttpResponse $resp
delete_CkHttpRequest $req