Sample code for 30+ languages & platforms
Tcl

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