Tech Articles


How to use HTTPClient or RESTClient to call an API with basic authentication


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)
There are no comments posted here yet

Find Articles by Tag

Application 32-bit UI Modernization WinAPI RESTClient PostgreSQL Database Table Schema Graph Trial DLL Windows OS .NET Std Framework GhostScript SOAP REST Filter Window Database Table Charts PostgreSQL ODBC driver Database Connection Design External Functions Database Object Data UI Azure Elevate Conference HTTPClient Transaction PowerServer Web Script JSONParser JSONGenerator OLE Event Handler Open Source TortoiseGit PBVM Encoding CI/CD Excel PBDOM iOS Outlook COM PowerBuilder Compiler Repository PDFlib Platform OrcaScript UI Themes MessageBox Installation Git OAuth Interface SnapDevelop Resize Source Code SQL Server License Debug BLOB OAuth 2.0 Mobile PFC Performance Stored Procedure RibbonBar Builder DataType Service WebBrowser PowerBuilder (Appeon) Source Control Configuration Error PowerBuilder Database Profile Testing Import JSON SqlModelMapper Authentication PowerScript (PS) Bug PowerServer Mobile Text SVN TLS/SSL ODBC Database Table Data RibbonBar Variable Encryption Linux OS TFS Oracle SDK Export JSON JSON InfoMaker SqlExecutor ActiveX SnapObjects Syntax Class Windows 10 Icons Deployment Export 64-bit Model XML Sort C# Web Service Proxy Jenkins DataWindow Event Icon Android File .NET DataStore Expression Database PBNI PDF Array Import Debugger TreeView .NET Assembly Web API Database Painter DevOps NativePDF SQL Validation Menu CrypterObject CoderObject Debugging RichTextEdit Control Event Handling Visual Studio Automated Testing API Messagging DataWindow JSON IDE Migration Branch & Merge DragDrop Authorization