Sample code for 30+ languages & platforms
PureBasic

HTTP Digest-MD5 Authentication Testing with httpbin.org

See more HTTP Examples

The URL https://httpbin.org/digest-auth/auth/user/passwd is password protected with user="user" and password="passwd". It requires Digest-MD5 authentication. Chilkat will automatically handle Digest-MD5 authentication as required by the server response. In this case, however, the server will fail the authentication unless a Cookie is included in the request. The cookie can have any name and any value. (Yes, this is ridiculous, and many developers have probably spent countless hours assuming their Digest-MD5 implementations were incorrect.)

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    ; This example assumes the Chilkat HTTP 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

    CkHttp::setCkLogin(http, "user")
    CkHttp::setCkPassword(http, "passwd")

    ; Add a cookie to satisfy httpbin.org's desire for cookies..
    ; Otherwise, it will fail the perfectly valid Digest-MD5 authentication.
    CkHttp::ckSetRequestHeader(http,"Cookie","something=" + Chr(34) + "something" + Chr(34))

    strResponse.s = CkHttp::ckQuickGetStr(http,"https://httpbin.org/digest-auth/auth/user/passwd")
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    Debug strResponse

    status.i = CkHttp::ckLastStatus(http)
    Debug "response status code = " + Str(status)

    ; The output of this program is:
    ; 
    ; 	{ 
    ; 	  "authenticated": true, 
    ; 	  "user": "user"
    ; 	} 
    ; 
    ; 	response status code = 200


    CkHttp::ckDispose(http)


    ProcedureReturn
EndProcedure