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

Get the Last-Modified Date Before HTTP Download

See more HTTP Examples

Demonstrates how to send a HEAD request to get the last-modified date of a file on a web server (without downloading the file).

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]

set resp [new_CkHttpResponse]

set success [CkHttp_HttpNoBody $http "HEAD" "https://www.chilkatsoft.com/hamlet.xml" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    exit
}

#  Examine the response header.
puts [CkHttpResponse_header $resp]

#  Here is a sample response header:

#  	Content-Length: 279658
#  	Content-Type: text/xml
#  	Last-Modified: Thu, 12 May 2016 15:14:08 GMT
#  	Accept-Ranges: bytes
#  	ETag: "c1cd8bee60acd11:0"
#  	Server: Microsoft-IIS/8.5
#  	X-Powered-By: ASP.NET
#  	X-Powered-By-Plesk: PleskWin
#  	Date: Thu, 25 Jul 2019 16:40:54 GMT

#  Get the Last-Modified header.
set lastModStr [CkHttpResponse_getHeaderField $resp "Last-Modified"]
#  If the header exists...
if {[CkHttpResponse_get_LastMethodSuccess $resp] == 1} then {
    #  Parse the RFC822 format date/time string
    set ckdt [new_CkDateTime]

    CkDateTime_SetFromRfc822 $ckdt $lastModStr

    #  If we want to access individual date/time parts (in the local timezone)
    set dt [new_CkDtObj]

    CkDateTime_ToDtObj $ckdt 1 $dt

    puts "day/month/year = [CkDtObj_get_Day $dt]/[CkDtObj_get_Month $dt]/[CkDtObj_get_Year $dt]"
}


delete_CkHttp $http
delete_CkHttpResponse $resp
delete_CkDateTime $ckdt
delete_CkDtObj $dt