Visual FoxPro
Visual FoxPro
Xero Get File Content (Files API)
Demonstrates how to download the content of a Xero file.Note: This example requires Chilkat v9.5.0.64 or greater.
Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loRest
LOCAL lcFileID
LOCAL loSbPath
LOCAL lnNumReplaced
LOCAL loJpgData
LOCAL loSbErrorText
lnSuccess = 0
* Note: Requires Chilkat v9.5.0.64 or greater.
* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loRest = CreateObject('Chilkat.Rest')
* Before sending REST API calls, the REST object needs to be
* initialized for OAuth1.
* See Xero 2-Legged OAuth1 Setup for sample code.
* Assuming the REST object's OAuth1 authenticator is setup, and the initial
* connection was made, we may now send REST HTTP requests..
* ------------------------------------------------------------------------------
lcFileID = "f042e9a3-a31d-4595-b8b3-6030ea6084bb"
loSbPath = CreateObject('Chilkat.StringBuilder')
loSbPath.Append("/files.xro/1.0/Files/{FileId}/Content")
lnNumReplaced = loSbPath.Replace("{FileId}",lcFileID)
loJpgData = CreateObject('Chilkat.BinData')
lnSuccess = loRest.FullRequestNoBodyBd("GET",loSbPath.GetAsString(),loJpgData)
IF (lnSuccess <> 1) THEN
? loRest.LastErrorText
RELEASE loRest
RELEASE loSbPath
RELEASE loJpgData
CANCEL
ENDIF
* A 200 response is expected for actual success.
* If we don't get a 200 response, then the response body was not actually
* the file data, but it was text containing error information.
IF (loRest.ResponseStatusCode <> 200) THEN
loSbErrorText = CreateObject('Chilkat.StringBuilder')
loSbErrorText.AppendBd(loJpgData,"utf-8",0,0)
? loSbErrorText.GetAsString()
? "-- Failed."
RELEASE loRest
RELEASE loSbPath
RELEASE loJpgData
RELEASE loSbErrorText
CANCEL
ENDIF
* Save to a local file.
lnSuccess = loJpgData.WriteFile("qa_output/xero_penguins.jpg")
IF (lnSuccess <> 1) THEN
? "Failed to save to local file."
ENDIF
? "Xero Get File was Successful."
RELEASE loRest
RELEASE loSbPath
RELEASE loJpgData
RELEASE loSbErrorText