Sample code for 30+ languages & platforms
PureBasic

Fetch Web Pages from Local Cache

See more HTTP Examples

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

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    ; 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

    ; Define a cache directory and set the number of levels based on the anticipated size of the cache.
    CkHttp::ckAddCacheRoot(http,"c:/example/httpCache/")

    ; up to 256 sub-directories under the cache root will be created as needed to hold cached GET's.
    CkHttp::setCkNumCacheLevels(http, 1)

    ; Tell the http object to fetch from the cache if possible.
    CkHttp::setCkFetchFromCache(http, 1)

    ; Also tell the http object to update the cache with newly fetched pages.
    CkHttp::setCkUpdateCache(http, 1)

    ; This HTTP GET should result in a cache file getting created.
    html.s = CkHttp::ckQuickGetStr(http,"https://www.google.com/")
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    ; The 1st GET was not from cache:
    Debug "Fetched from cache: " + Str(CkHttp::ckLastFromCache(http))

    ; Fetching again will cause the page to be delivered from our local cache.
    html = CkHttp::ckQuickGetStr(http,"https://www.google.com/")
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    ; The 2nd GET is from cache:
    Debug "Fetched from cache: " + Str(CkHttp::ckLastFromCache(http))


    CkHttp::ckDispose(http)


    ProcedureReturn
EndProcedure