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

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