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

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