Tcl
Tcl
REST Download Binary File to Memory
See more REST Examples
Download a binary file to a Chilkat BinData object.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set rest [new_CkRest]
# We're going to download a sample MS-Word doc file.
# The URLs of our MS-Word sample documents are:
# https://www.chilkatdownload.com/sample_data/sample.doc
# https://www.chilkatdownload.com/sample_data/sample.docx
set pathPartOfUrl "/sample_data/sample.doc"
set domain "chilkatdownload.com"
set bTls 1
set port 443
set bAutoReconnect 1
set success [CkRest_Connect $rest $domain $port $bTls $bAutoReconnect]
if {$success != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
exit
}
set bd [new_CkBinData]
set success [CkRest_FullRequestNoBodyBd $rest "GET" $pathPartOfUrl $bd]
if {$success != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
delete_CkBinData $bd
exit
}
# A 200 response is expected for actual success.
# If we don't get a 200 response, then the response body was not actually
# the file data, but it was text containing error information.
if {[CkRest_get_ResponseStatusCode $rest] != 200} then {
set sbErrorText [new_CkStringBuilder]
CkStringBuilder_AppendBd $sbErrorText $bd "utf-8" 0 0
puts [CkStringBuilder_getAsString $sbErrorText]
puts "-- Failed."
delete_CkRest $rest
delete_CkBinData $bd
delete_CkStringBuilder $sbErrorText
exit
}
# Save to a local file.
# Change the file path based on your operating system or needs...
set success [CkBinData_WriteFile $bd "c:/temp/qa_output/sample.doc"]
if {$success != 1} then {
puts "Failed to save to local file."
delete_CkRest $rest
delete_CkBinData $bd
delete_CkStringBuilder $sbErrorText
exit
}
puts "REST Download of MS-Word File was successful."
delete_CkRest $rest
delete_CkBinData $bd
delete_CkStringBuilder $sbErrorText