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

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