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

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