Sample code for 30+ languages & platforms
Lianja

REST Download Binary File to Memory

See more REST Examples

Download a binary file to a Chilkat BinData object.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loRest = createobject("CkRest")

// 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"

llBTls = .T.
lnPort = 443
llBAutoReconnect = .T.
llSuccess = loRest.Connect(lcDomain,lnPort,llBTls,llBAutoReconnect)
if (llSuccess <> .T.) then
    ? loRest.LastErrorText
    release loRest
    return
endif

loBd = createobject("CkBinData")
llSuccess = loRest.FullRequestNoBodyBd("GET",lcPathPartOfUrl,loBd)
if (llSuccess <> .T.) then
    ? loRest.LastErrorText
    release loRest
    release loBd
    return
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("CkStringBuilder")
    loSbErrorText.AppendBd(loBd,"utf-8",0,0)
    ? loSbErrorText.GetAsString()
    ? "-- Failed."
    release loRest
    release loBd
    release loSbErrorText
    return
endif

// Save to a local file.
// Change the file path based on your operating system or needs...
llSuccess = loBd.WriteFile("c:/temp/qa_output/sample.doc")
if (llSuccess <> .T.) then
    ? "Failed to save to local file."
    release loRest
    release loBd
    release loSbErrorText
    return
endif

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


release loRest
release loBd
release loSbErrorText