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

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