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

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