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 )