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

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