Sample code for 30+ languages & platforms
PureBasic

Get Response Header for Method that does not Return HttpResponse Object

Demonstrates how to get the response header and individual response header fields for a method that does not return an HTTP response object. (If a method returns an HHTTP response object, then the response header information should be obtained from the response object.)

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkMime.pb"
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires 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

    strHtml.s = CkHttp::ckQuickGetStr(http,"https://www.duckduckgo.com/")
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    Debug CkHttp::ckLastResponseHeader(http)

    ; Here's a sample HTTP response header:

    ; Server: nginx
    ; Date: Wed, 30 Sep 2020 13:13:02 GMT
    ; Content-Type: text/html; charset=UTF-8
    ; Transfer-Encoding: chunked
    ; Connection: keep-alive
    ; Vary: Accept-Encoding
    ; ETag: W/"5f7371f4-1683"
    ; Strict-Transport-Security: max-age=31536000
    ; X-Frame-Options: SAMEORIGIN
    ; Content-Security-Policy: default-src https: blob: data: 'unsafe-inline' 'unsafe-eval'; frame-ancestors 'self'
    ; X-XSS-Protection: 1;mode=block
    ; X-Content-Type-Options: nosniff
    ; Referrer-Policy: origin
    ; Expect-CT: max-age=0
    ; Expires: Wed, 30 Sep 2020 13:13:01 GMT
    ; Cache-Control: no-cache
    ; Content-Encoding: gzip

    ; We can load it into a Chilkat MIME object to get header field values:
    mime.i = CkMime::ckCreate()
    If mime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkMime::ckLoadMime(mime,CkHttp::ckLastResponseHeader(http))
    If success = 0
        Debug CkMime::ckLastErrorText(mime)
        CkHttp::ckDispose(http)
        CkMime::ckDispose(mime)
        ProcedureReturn
    EndIf

    ; Get MIME header field values using Chilkat MIME...
    Debug "----"
    Debug "ETag: " + CkMime::ckGetHeaderField(mime,"ETag")


    CkHttp::ckDispose(http)
    CkMime::ckDispose(mime)


    ProcedureReturn
EndProcedure