PureBasic
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
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