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

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