Sample code for 30+ languages & platforms
PowerBuilder

REST Download Binary File to Memory

See more REST Examples

Download a binary file to a Chilkat BinData object.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
long li_Success
oleobject loo_Rest
string ls_PathPartOfUrl
string ls_Domain
long li_BTls
long li_Port
long li_BAutoReconnect
oleobject loo_Bd
oleobject loo_SbErrorText

li_Success = 0

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

loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")
if li_rc < 0 then
    destroy loo_Rest
    MessageBox("Error","Connecting to COM object failed")
    return
end if

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

ls_PathPartOfUrl = "/sample_data/sample.doc"
ls_Domain = "chilkatdownload.com"

li_BTls = 1
li_Port = 443
li_BAutoReconnect = 1
li_Success = loo_Rest.Connect(ls_Domain,li_Port,li_BTls,li_BAutoReconnect)
if li_Success <> 1 then
    Write-Debug loo_Rest.LastErrorText
    destroy loo_Rest
    return
end if

loo_Bd = create oleobject
li_rc = loo_Bd.ConnectToNewObject("Chilkat.BinData")

li_Success = loo_Rest.FullRequestNoBodyBd("GET",ls_PathPartOfUrl,loo_Bd)
if li_Success <> 1 then
    Write-Debug loo_Rest.LastErrorText
    destroy loo_Rest
    destroy loo_Bd
    return
end if

//  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 loo_Rest.ResponseStatusCode <> 200 then
    loo_SbErrorText = create oleobject
    li_rc = loo_SbErrorText.ConnectToNewObject("Chilkat.StringBuilder")

    loo_SbErrorText.AppendBd(loo_Bd,"utf-8",0,0)
    Write-Debug loo_SbErrorText.GetAsString()
    Write-Debug "-- Failed."
    destroy loo_Rest
    destroy loo_Bd
    destroy loo_SbErrorText
    return
end if

//  Save to a local file.
//  Change the file path based on your operating system or needs...
li_Success = loo_Bd.WriteFile("c:/temp/qa_output/sample.doc")
if li_Success <> 1 then
    Write-Debug "Failed to save to local file."
    destroy loo_Rest
    destroy loo_Bd
    destroy loo_SbErrorText
    return
end if

Write-Debug "REST Download of MS-Word File was successful."


destroy loo_Rest
destroy loo_Bd
destroy loo_SbErrorText