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

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