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

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