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

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