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

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