Visual FoxPro
Visual FoxPro
Download File from Dropbox into a String Variable
See more Dropbox Examples
Demonstrates how to download a file from Dropbox directly into a string variable.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loRest
LOCAL loJson
LOCAL lcFileContent
LOCAL lcApiResult
LOCAL loJsonResult
LOCAL lnSize
LOCAL lcRev
LOCAL lcClientModified
LOCAL loCkdt
LOCAL lnBLocalTime
LOCAL loDt
lnSuccess = 0
* 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.
loRest = CreateObject('Chilkat.Rest')
* Connect to Dropbox
lnSuccess = loRest.Connect("content.dropboxapi.com",443,1,1)
IF (lnSuccess = 0) THEN
? loRest.LastErrorText
RELEASE loRest
CANCEL
ENDIF
* Add request headers.
loRest.AddHeader("Authorization","Bearer DROPBOX_ACCESS_TOKEN")
* The download "parameters" are contained in JSON passed in an HTTP request header.
* This is the JSON indicating the file to be downloaded:
* {
* "path": "/jack.txt",
* }
loJson = CreateObject('Chilkat.JsonObject')
loJson.AppendString("path","/jack.txt")
loRest.AddHeader("Dropbox-API-Arg",loJson.Emit())
* The content of the file on Dropbox is returned.
lcFileContent = loRest.FullRequestNoBody("POST","/2/files/download")
IF (loRest.LastMethodSuccess = 0) THEN
? loRest.LastErrorText
RELEASE loRest
RELEASE loJson
CANCEL
ENDIF
* When successful, Dropbox responds with a 200 response code.
IF (loRest.ResponseStatusCode <> 200) THEN
* Examine the request/response to see what happened.
? "response status code = " + STR(loRest.ResponseStatusCode)
? "response status text = " + loRest.ResponseStatusText
? "response header: " + loRest.ResponseHeader
? "response body (if any): " + lcFileContent
? "---"
? "LastRequestStartLine: " + loRest.LastRequestStartLine
? "LastRequestHeader: " + loRest.LastRequestHeader
RELEASE loRest
RELEASE loJson
CANCEL
ENDIF
* Show the file content that was downloaded:
? lcFileContent
? "----"
* 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:
lcApiResult = loRest.ResponseHdrByName("dropbox-api-result")
? lcApiResult
* In this case, the pretty-formatted dropbox-api-result JSON looks like this:
* {
* "name": "jack.txt",
* "path_lower": "/jack.txt",
* "path_display": "/jack.txt",
* "id": "id:yqx4-tE_NKAAAAAAAAAAAQ",
* "client_modified": "2016-06-02T20:42:11Z",
* "server_modified": "2016-06-02T20:42:11Z",
* "rev": "8482db15f",
* "size": 42
* }
* Load the JSON, pretty-print it, and demonstrate how to get some values...
loJsonResult = CreateObject('Chilkat.JsonObject')
loJsonResult.EmitCompact = 0
loJsonResult.Load(lcApiResult)
* Show the JSON pretty-printed...
? loJsonResult.Emit()
* Sample code to get data from the JSON response:
lnSize = loJsonResult.IntOf("size")
? "size = " + STR(lnSize)
lcRev = loJsonResult.StringOf("rev")
? "rev = " + lcRev
lcClientModified = loJsonResult.StringOf("client_modified")
loCkdt = CreateObject('Chilkat.CkDateTime')
loCkdt.SetFromTimestamp(lcClientModified)
lnBLocalTime = 1
loDt = CreateObject('Chilkat.DtObj')
loCkdt.ToDtObj(lnBLocalTime,loDt)
? STR(loDt.Day) + "/" + STR(loDt.Month) + "/" + STR(loDt.Year) + " " + STR(loDt.Hour) + ":" + STR(loDt.Minute)
RELEASE loRest
RELEASE loJson
RELEASE loJsonResult
RELEASE loCkdt
RELEASE loDt