PureBasic
PureBasic
REST Download Binary File to Memory
See more REST Examples
Download a binary file to a Chilkat BinData object.Chilkat PureBasic Downloads
IncludeFile "CkBinData.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"
Procedure ChilkatExample()
success.i = 0
; This requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
rest.i = CkRest::ckCreate()
If rest.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; 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
pathPartOfUrl.s = "/sample_data/sample.doc"
domain.s = "chilkatdownload.com"
bTls.i = 1
port.i = 443
bAutoReconnect.i = 1
success = CkRest::ckConnect(rest,domain,port,bTls,bAutoReconnect)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
ProcedureReturn
EndIf
bd.i = CkBinData::ckCreate()
If bd.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkRest::ckFullRequestNoBodyBd(rest,"GET",pathPartOfUrl,bd)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkBinData::ckDispose(bd)
ProcedureReturn
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 CkRest::ckResponseStatusCode(rest) <> 200
sbErrorText.i = CkStringBuilder::ckCreate()
If sbErrorText.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkStringBuilder::ckAppendBd(sbErrorText,bd,"utf-8",0,0)
Debug CkStringBuilder::ckGetAsString(sbErrorText)
Debug "-- Failed."
CkRest::ckDispose(rest)
CkBinData::ckDispose(bd)
CkStringBuilder::ckDispose(sbErrorText)
ProcedureReturn
EndIf
; Save to a local file.
; Change the file path based on your operating system or needs...
success = CkBinData::ckWriteFile(bd,"c:/temp/qa_output/sample.doc")
If success <> 1
Debug "Failed to save to local file."
CkRest::ckDispose(rest)
CkBinData::ckDispose(bd)
CkStringBuilder::ckDispose(sbErrorText)
ProcedureReturn
EndIf
Debug "REST Download of MS-Word File was successful."
CkRest::ckDispose(rest)
CkBinData::ckDispose(bd)
CkStringBuilder::ckDispose(sbErrorText)
ProcedureReturn
EndProcedure