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

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