PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkDateTime.pb"
IncludeFile "CkDtObj.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpNoBody(http,"HEAD","https://www.chilkatsoft.com/hamlet.xml",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; Examine the response header.
Debug CkHttpResponse::ckHeader(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.
lastModStr.s = CkHttpResponse::ckGetHeaderField(resp,"Last-Modified")
; If the header exists...
If CkHttpResponse::ckLastMethodSuccess(resp) = 1
; Parse the RFC822 format date/time string
ckdt.i = CkDateTime::ckCreate()
If ckdt.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkDateTime::ckSetFromRfc822(ckdt,lastModStr)
; If we want to access individual date/time parts (in the local timezone)
dt.i = CkDtObj::ckCreate()
If dt.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkDateTime::ckToDtObj(ckdt,1,dt)
Debug "day/month/year = " + Str(CkDtObj::ckDay(dt)) + "/" + Str(CkDtObj::ckMonth(dt)) + "/" + Str(CkDtObj::ckYear(dt))
EndIf
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
CkDateTime::ckDispose(ckdt)
CkDtObj::ckDispose(dt)
ProcedureReturn
EndProcedure