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

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