Sample code for 30+ languages & platforms
Visual FoxPro

REST Download Binary File to Memory

See more REST Examples

Download a binary file to a Chilkat BinData object.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loRest
LOCAL lcPathPartOfUrl
LOCAL lcDomain
LOCAL lnBTls
LOCAL lnPort
LOCAL lnBAutoReconnect
LOCAL loBd
LOCAL loSbErrorText

lnSuccess = 0

* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loRest = CreateObject('Chilkat.Rest')

* We're going to download a sample MS-Word doc file.
* The URLs of our MS-Word sample documents are:

* https://www.chilkatdownload.com/sample_data/sample.doc
* https://www.chilkatdownload.com/sample_data/sample.docx

lcPathPartOfUrl = "/sample_data/sample.doc"
lcDomain = "chilkatdownload.com"

lnBTls = 1
lnPort = 443
lnBAutoReconnect = 1
lnSuccess = loRest.Connect(lcDomain,lnPort,lnBTls,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loBd = CreateObject('Chilkat.BinData')
lnSuccess = loRest.FullRequestNoBodyBd("GET",lcPathPartOfUrl,loBd)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loBd
    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(loBd,"utf-8",0,0)
    ? loSbErrorText.GetAsString()
    ? "-- Failed."
    RELEASE loRest
    RELEASE loBd
    RELEASE loSbErrorText
    CANCEL
ENDIF

* Save to a local file.
* Change the file path based on your operating system or needs...
lnSuccess = loBd.WriteFile("c:/temp/qa_output/sample.doc")
IF (lnSuccess <> 1) THEN
    ? "Failed to save to local file."
    RELEASE loRest
    RELEASE loBd
    RELEASE loSbErrorText
    CANCEL
ENDIF

? "REST Download of MS-Word File was successful."

RELEASE loRest
RELEASE loBd
RELEASE loSbErrorText