Sample code for 30+ languages & platforms
PureBasic

HTTP HEAD Request

See more HTTP Examples

Sends an HTTP HEAD request and gets the response.

Note: The response to an HTTP HEAD request is always just the response header. The reponse body is always 0 length (thus the reason it's called a "HEAD" request..)

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.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

    ; If the URL uses "https://", then the connection will be TLS.
    ; Otherwise it will be TCP.

    ; A failure is when we don't get any response.  It could be a timeout, an inability to connect, etc.
    ; For example, a "404 Not Found" response is still a response, and thus deemed success in terms of the API..

    resp.i = CkHttpResponse::ckCreate()
    If resp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckHttpNoBody(http,"HEAD","https://example-code.com/",resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    ; Examine the response.
    Debug "Status Code = " + Str(CkHttpResponse::ckStatusCode(resp))
    Debug "Status Line = " + CkHttpResponse::ckStatusLine(resp)
    Debug "Status Text = " + CkHttpResponse::ckStatusText(resp)
    Debug "Full Response Header:"
    Debug CkHttpResponse::ckHeader(resp)
    Debug "----"
    numHeaderFields.i = CkHttpResponse::ckNumHeaderFields(resp)
    Debug "Num Header Fields: " + Str(numHeaderFields)
    i.i
    For i = 0 To numHeaderFields - 1
        Debug CkHttpResponse::ckGetHeaderName(resp,i) + ": " + CkHttpResponse::ckGetHeaderValue(resp,i)
    Next


    CkHttp::ckDispose(http)
    CkHttpResponse::ckDispose(resp)


    ProcedureReturn
EndProcedure