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

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