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

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