Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Download File from Dropbox (Streaming)See more Dropbox ExamplesDownloads a file from Dropbox, streaming it directly to a file in the filesystem.
Use ChilkatAx-win32.pkg Procedure Test Handle hoRest Boolean iSuccess Handle hoJson Variant vFileStream Handle hoFileStream Integer iExpectedStatus String sResponseStr String sApiResult Result Handle hoJsonResult Integer iSize String sRev String sClientModified Handle hoCkdt Boolean iBLocalTime Variant vDt Handle hoDt String sTemp1 Integer iTemp1 Integer iTemp2 Integer iTemp3 Integer iTemp4 Integer iTemp5 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // A Dropbox access token should have been previously obtained. // Dropbox access tokens do not expire. // See Dropbox Access Token. Get Create (RefClass(cComChilkatRest)) To hoRest If (Not(IsComObjectCreated(hoRest))) Begin Send CreateComObject of hoRest End // Connect to Dropbox Get ComConnect Of hoRest "content.dropboxapi.com" 443 True True To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End // Add request headers. Get ComAddHeader Of hoRest "Authorization" "Bearer DROPBOX_ACCESS_TOKEN" To iSuccess // The download "parameters" are contained in JSON passed in an HTTP request header. // This is the JSON indicating the file to be downloaded: // { // "path": "/Homework/lit/hamlet.xml", // } Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Get ComAppendString Of hoJson "path" "/Homework/lit/hamlet.xml" To iSuccess Get ComEmit Of hoJson To sTemp1 Get ComAddHeader Of hoRest "Dropbox-API-Arg" sTemp1 To iSuccess // Setup a file stream for the download Get Create (RefClass(cComChilkatStream)) To hoFileStream If (Not(IsComObjectCreated(hoFileStream))) Begin Send CreateComObject of hoFileStream End Set ComSinkFile Of hoFileStream To "qa_output/hamletFromDropbox.xml" // Indicate that the call to FullRequestNoBody should send the response body // to fileStream if the response status code is 200. // If a non-success response status code is received, then nothing // is streamed to the output file and the error response is returned by FullRequestNoBody. Move 200 To iExpectedStatus Get pvComObject of hoFileStream to vFileStream Get ComSetResponseBodyStream Of hoRest iExpectedStatus True vFileStream To iSuccess Get ComFullRequestNoBody Of hoRest "POST" "/2/files/download" To sResponseStr Get ComLastMethodSuccess Of hoRest To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End // When successful, Dropbox responds with a 200 response code. Get ComResponseStatusCode Of hoRest To iTemp1 If (iTemp1 <> 200) Begin // Examine the request/response to see what happened. Get ComResponseStatusCode Of hoRest To iTemp1 Showln "response status code = " iTemp1 Get ComResponseStatusText Of hoRest To sTemp1 Showln "response status text = " sTemp1 Get ComResponseHeader Of hoRest To sTemp1 Showln "response header: " sTemp1 Showln "response body (if any): " sResponseStr Showln "---" Get ComLastRequestStartLine Of hoRest To sTemp1 Showln "LastRequestStartLine: " sTemp1 Get ComLastRequestHeader Of hoRest To sTemp1 Showln "LastRequestHeader: " sTemp1 Procedure_Return End // Information about the downloaded file is also available as JSON in a response header. // The "dropbox-api-result" response header contains the information. For example: Get ComResponseHdrByName Of hoRest "dropbox-api-result" To sApiResult Showln sApiResult // In this case, the pretty-formatted dropbox-api-result JSON looks like this: // { // "name": "hamlet.xml", // "path_lower": "/homework/lit/hamlet.xml", // "path_display": "/Homework/lit/hamlet.xml", // "id": "id:74FkdeNuyKAAAAAAAAAAAQ", // "client_modified": "2016-06-02T23:19:00Z", // "server_modified": "2016-06-02T23:19:00Z", // "rev": "9482db15f", // "size": 279658 // } // Load the JSON, pretty-print it, and demonstrate how to get some values... Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResult If (Not(IsComObjectCreated(hoJsonResult))) Begin Send CreateComObject of hoJsonResult End Set ComEmitCompact Of hoJsonResult To False Get ComLoad Of hoJsonResult sApiResult To iSuccess // Show the JSON pretty-printed... Get ComEmit Of hoJsonResult To sTemp1 Showln sTemp1 // Sample code to get data from the JSON response: Get ComIntOf Of hoJsonResult "size" To iSize Showln "size = " iSize Get ComStringOf Of hoJsonResult "rev" To sRev Showln "rev = " sRev Get ComStringOf Of hoJsonResult "client_modified" To sClientModified Get Create (RefClass(cComCkDateTime)) To hoCkdt If (Not(IsComObjectCreated(hoCkdt))) Begin Send CreateComObject of hoCkdt End Get ComSetFromTimestamp Of hoCkdt sClientModified To iSuccess Move True To iBLocalTime Get ComGetDtObj Of hoCkdt iBLocalTime To vDt If (IsComObject(vDt)) Begin Get Create (RefClass(cComChilkatDtObj)) To hoDt Set pvComObject Of hoDt To vDt End Get ComDay Of hoDt To iTemp1 Get ComMonth Of hoDt To iTemp2 Get ComYear Of hoDt To iTemp3 Get ComHour Of hoDt To iTemp4 Get ComMinute Of hoDt To iTemp5 Showln iTemp1 "/" iTemp2 "/" iTemp3 " " iTemp4 ":" iTemp5 Send Destroy of hoDt End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.