Background
Almost every API requires some sort of authentication. Basic authentication is the simplest way to handle authentication. Here we are going to do a simple example to show you how to use HTTPClient or RESTClient to call an API with basic authentication.
Access a simple API with basic authentication in IE
Let’s take a simple basic authentication API from the Internet as an example.
If we input https://jigsaw.w3.org/HTTP/Basic/ in IE and press Enter, then input Username: guest; Password: guest in the pop-up login window.
Click the Sign in button and you will get a response of the current IE accessing the API: “Your browser made it!”
Use the HTTPClient object to call an API with basic authentication
Here is the debug view:
Here is the sample PB code:
String ls_Basic, ls_UserName, ls_Password, ls_Body
Integer li_Return
CoderObject lco_Code
HttpClient lhc_Client
lco_Code = Create CoderObject
lhc_Client = Create HttpClient
ls_UserName = "guest"
ls_Password = "guest"
ls_Basic = lco_code.base64encode( Blob(ls_UserName + ":" + ls_Password , EncodingUTF8!))
lhc_Client.SetRequestHeader( "Authorization", "Basic " + ls_Basic)
li_Return = lhc_Client.SendRequest("GET", "https://jigsaw.w3.org/HTTP/Basic/")
If li_Return = 1 And lhc_Client.GetResponseStatusCode() = 200 Then
lhc_Client.GetResponseBody(ls_Body)
MessageBox ("Tips" ,ls_Body )
End If
Destroy ( lco_Code )
Destroy ( lhc_Client )
Use the RESTClient object to call an API with basic authentication
Here is the debug view:
Here is the sample PB code:
String ls_Basic, ls_UserName, ls_Password, ls_Body
Integer li_Return
CoderObject lco_Code
RestClient lhc_Client
lco_Code = Create CoderObject
lhc_Client = Create RestClient
ls_UserName = "guest"
ls_Password = "guest"
ls_Basic = lco_code.base64encode( Blob(ls_UserName + ":" + ls_Password , EncodingUTF8!))
lhc_Client.SetRequestHeader( "Authorization", "Basic " + ls_Basic)
li_Return = lhc_Client.sendgetrequest( "https://jigsaw.w3.org/HTTP/Basic/",ls_Body)
If li_Return = 1 And lhc_Client.GetResponseStatusCode() = 200 Then
MessageBox ("Tips" ,ls_Body )
End If
Destroy ( lco_Code )
Destroy ( lhc_Client )
Comments (0)