Tcl
Tcl
QR Code Generator via api.qrserver.com REST API
See more HTTP Examples
Demonstrates how to generate a QR code using the api.qrserver.com REST API service.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]
# Send the following GET request to get a binary response.
# The body of the binary response contains the image data for the QR code.
# https://api.qrserver.com/v1/create-qr-code/?data=[URL-encoded-text]&size=[pixels]x[pixels]
set queryParams [new_CkJsonObject]
CkJsonObject_UpdateString $queryParams "data" "Hello World"
CkJsonObject_UpdateString $queryParams "size" "100x100"
# Get a PNG file..
# Possible formats are:
# png
# gif
# jpeg
# jpg
# svg
# eps
# Case matters. Use lowercase.
CkJsonObject_UpdateString $queryParams "format" "png"
# Send the GET request to an endpoint.
# Chilkat will add the url-encoded query params passed in the JSON.
set resp [new_CkHttpResponse]
set success [CkHttp_HttpParams $http "GET" "https://api.qrserver.com/v1/create-qr-code/" $queryParams $resp]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkJsonObject $queryParams
delete_CkHttpResponse $resp
exit
}
# Did it succeed?
if {[CkHttpResponse_get_StatusCode $resp] != 200} then {
# The response body, if anything, would not be the image data, but would likely be the error text (or HTML, or whatever...)
puts [CkHttpResponse_bodyStr $resp]
puts "Response status = [CkHttpResponse_get_StatusCode $resp]"
puts "Failed."
delete_CkHttp $http
delete_CkJsonObject $queryParams
delete_CkHttpResponse $resp
exit
}
# Success if we get here..
# Save the binary body as the PNG file, or you can get the bytes of the PNG..
set success [CkHttpResponse_SaveBodyBinary $resp "c:/temp/qa_output/qr_code.png"]
# Or get the bytes:
set bd [new_CkBinData]
CkHttpResponse_GetBodyBd $resp $bd
# Use the bytes in bd...
# See the online reference documentation for the function to access the bytes directly.
puts "Success."
delete_CkHttp $http
delete_CkJsonObject $queryParams
delete_CkHttpResponse $resp
delete_CkBinData $bd