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

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