Sample code for 30+ languages & platforms
Tcl

Fetch Web Pages from Local Cache

See more HTTP Examples

Demonstrates how to keep a local cache to avoid re-fetching web pages.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

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

set http [new_CkHttp]

# Define a cache directory and set the number of levels based on the anticipated size of the cache.
CkHttp_AddCacheRoot $http "c:/example/httpCache/"

# up to 256 sub-directories under the cache root will be created as needed to hold cached GET's.
CkHttp_put_NumCacheLevels $http 1

# Tell the http object to fetch from the cache if possible.
CkHttp_put_FetchFromCache $http 1

# Also tell the http object to update the cache with newly fetched pages.
CkHttp_put_UpdateCache $http 1

# This HTTP GET should result in a cache file getting created.
set html [CkHttp_quickGetStr $http "https://www.google.com/"]
if {[CkHttp_get_LastMethodSuccess $http] == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    exit
}

# The 1st GET was not from cache:
puts "Fetched from cache: [CkHttp_get_LastFromCache $http]"

# Fetching again will cause the page to be delivered from our local cache.
set html [CkHttp_quickGetStr $http "https://www.google.com/"]
if {[CkHttp_get_LastMethodSuccess $http] == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    exit
}

# The 2nd GET is from cache:
puts "Fetched from cache: [CkHttp_get_LastFromCache $http]"

delete_CkHttp $http