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 )

 

3
5