Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3/4TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

Classic ASP Web API Examples

Primary Categories

Microsoft Calendar





(Classic ASP) Xero API through an HTTP Proxy

This example demonstrates connecting through an HTTP proxy w/ 2-legged OAuth for a Xero private application.

This example requires Chilkat v9.5.0.64 or later

Chilkat ActiveX Downloads

ActiveX for 32-bit and 64-bit Windows

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
' This example requires Chilkat v9.5.0.64 or later

' This sample code would typically be placed in a subroutine or function
' where the rest object is passed by reference.
' It does the OAuth1 setup and makes the initial connection.
set rest = Server.CreateObject("Chilkat_9_5_0.Rest")

' Connect to the Xero server through an HTTP proxy, and then tell the REST object
' to use the socket connection.
set socket = Server.CreateObject("Chilkat_9_5_0.Socket")

' Set the HTTP proxy domain or IP address, and port.
socket.HttpProxyHostname = ""
socket.HttpProxyPort = 8088

' Connect through the HTTP proxy..
bTls = 1
port = 443
maxWaitMs = 5000
success = socket.Connect("",port,bTls,maxWaitMs)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( "Connect Failure Error Code: " & socket.ConnectFailReason) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( socket.LastErrorText) & "</pre>"
End If

' Use the HTTP proxied TLS connection:
success = rest.UseConnection(socket,1)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( rest.LastErrorText) & "</pre>"
End If

' OK, we're connected.  
' The UseConnection method has an internal reference to the underlying/internal socket.
' The application can does not need to keep its socket object in existence.
' -----------------------------------------------------------------
' Now setup the OAuth1 authenticator..

consumerKey = "XERO_PRIVATE_APP_KEY"
consumerSecret = "XERO_PRIVATE_APP_SECRET"

' Let's get our private key from our PFX (password protected), or the PEM (unprotected).
' You can decide which to use.  Either is OK, although I would recommend keeping your
' private keys in a PFX and not in an unprotected PEM.
set pfx = Server.CreateObject("Chilkat_9_5_0.Pfx")
success = pfx.LoadPfxFile("qa_data/certs/xero_private_app/public_privatekey.pfx","PFX_PASSWORD")
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( pfx.LastErrorText) & "</pre>"
End If

' privKeyFromPfx is a Chilkat_9_5_0.PrivateKey
Set privKeyFromPfx = pfx.GetPrivateKey(0)
If (pfx.LastMethodSuccess <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( pfx.LastErrorText) & "</pre>"
End If

' Or we can load from a PEM..
set privKeyFromPem = Server.CreateObject("Chilkat_9_5_0.PrivateKey")
success = privKeyFromPem.LoadPemFile("qa_data/certs/xero_private_app/privatekey.pem")
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( privKeyFromPem.LastErrorText) & "</pre>"
End If

' Note: There are many other means for loading a private key, including
' from other formats and directly from memory (i.e. not file-based).

set oauth1 = Server.CreateObject("Chilkat_9_5_0.OAuth1")
oauth1.ConsumerKey = consumerKey
oauth1.ConsumerSecret = consumerSecret
oauth1.Token = consumerKey
oauth1.TokenSecret = consumerSecret
oauth1.SignatureMethod = "RSA-SHA1"
success = oauth1.SetRsaKey(privKeyFromPfx)

' Install the OAuth1 authenticator.
success = rest.SetAuthOAuth1(oauth1,0)

Response.Write "<pre>" & Server.HTMLEncode( "OK, the Xero OAuth1 is initialized and the REST object is ready to make REST API calls..") & "</pre>"

' -----------------------------------------------------------------
' Make a call to verify that OAuth1 through an HTTP proxy works..

' Get the full list of contacts.
set sbXml = Server.CreateObject("Chilkat_9_5_0.StringBuilder")
success = rest.FullRequestNoBodySb("GET","/api.xro/2.0/Contacts",sbXml)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( rest.LastErrorText) & "</pre>"
End If

' A 200 response is expected for actual success.
If (rest.ResponseStatusCode <> 200) Then
    Response.Write "<pre>" & Server.HTMLEncode( sbXml.GetAsString()) & "</pre>"
End If

' Iterate over the contacts..
bAutoTrim = 0
set xml = Server.CreateObject("Chilkat_9_5_0.Xml")
success = xml.LoadSb(sbXml,bAutoTrim)
success = xml.SaveXml("qa_cache/xero_contacts.xml")

' How many records exist?
recordCount = xml.NumChildrenAt("Contacts")
Response.Write "<pre>" & Server.HTMLEncode( "numRecords = " & recordCount) & "</pre>"

i = 0
Do While i < recordCount
    xml.I = i
    Response.Write "<pre>" & Server.HTMLEncode( "ContactID: " & xml.GetChildContent("Contacts|Contact[i]|ContactID")) & "</pre>"
    i = i + 1



© 2000-2019 Chilkat Software, Inc. All Rights Reserved.