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
(Unicode C++) Create a Temporary Public Link to a DropBox FileGet a temporary link to stream content of a file. This link will expire in four hours and afterwards you will get 410 Gone. For more information, see https://www.dropbox.com/developers/documentation/http/documentation#files-get_temporary_link
#include <CkHttpW.h> #include <CkJsonObjectW.h> #include <CkHttpResponseW.h> #include <CkStringBuilderW.h> void ChilkatSample(void) { // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkHttpW http; bool success; // Implements the following CURL command: // curl -X POST https://api.dropboxapi.com/2/files/get_temporary_link \ // --header "Authorization: Bearer DROPBOX_ACCESS_TOKEN" \ // --header "Content-Type: application/json" \ // --data "{\"path\": \"/video.mp4\"}" // Use this online tool to generate code from sample JSON: // Generate Code to Create JSON // The following JSON is sent in the request body. // { // "path": "/video.mp4" // } CkJsonObjectW json; json.UpdateString(L"path",L"/video.mp4"); http.SetRequestHeader(L"Authorization",L"Bearer DROPBOX_ACCESS_TOKEN"); http.SetRequestHeader(L"Content-Type",L"application/json"); CkHttpResponseW *resp = http.PostJson3(L"https://api.dropboxapi.com/2/files/get_temporary_link",L"application/json",json); if (http.get_LastMethodSuccess() == false) { wprintf(L"%s\n",http.lastErrorText()); return; } CkStringBuilderW sbResponseBody; resp->GetBodySb(sbResponseBody); CkJsonObjectW jResp; jResp.LoadSb(sbResponseBody); jResp.put_EmitCompact(false); wprintf(L"Response Body:\n"); wprintf(L"%s\n",jResp.emit()); int respStatusCode = resp->get_StatusCode(); wprintf(L"Response Status Code = %d\n",respStatusCode); if (respStatusCode >= 400) { wprintf(L"Response Header:\n"); wprintf(L"%s\n",resp->header()); wprintf(L"Failed.\n"); delete resp; return; } delete resp; // Sample JSON response: // (Sample code for parsing the JSON response is shown below) // { // "metadata": { // "name": "Prime_Numbers.txt", // "id": "id:a4ayc_80_OEAAAAAAAAAXw", // "client_modified": "2015-05-12T15:50:38Z", // "server_modified": "2015-05-12T15:50:38Z", // "rev": "a1c10ce0dd78", // "size": 7212, // "path_lower": "/homework/math/prime_numbers.txt", // "path_display": "/Homework/math/Prime_Numbers.txt", // "sharing_info": { // "read_only": true, // "parent_shared_folder_id": "84528192421", // "modified_by": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc" // }, // "is_downloadable": true, // "property_groups": [ // { // "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa", // "fields": [ // { // "name": "Security Policy", // "value": "Confidential" // } // ] // } // ], // "has_explicit_shared_members": false, // "content_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" // }, // "link": "https://dl.dropboxusercontent.com/apitl/1/YXNkZmFzZGcyMzQyMzI0NjU2NDU2NDU2" // } // Sample code for parsing the JSON response... // Use the following online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat. // See this example explaining how this memory should be used: const char * functions. const wchar_t *template_id = 0; int j; int count_j; const wchar_t *name = 0; const wchar_t *value = 0; const wchar_t *metadataName = jResp.stringOf(L"metadata.name"); const wchar_t *metadataId = jResp.stringOf(L"metadata.id"); const wchar_t *metadataClient_modified = jResp.stringOf(L"metadata.client_modified"); const wchar_t *metadataServer_modified = jResp.stringOf(L"metadata.server_modified"); const wchar_t *metadataRev = jResp.stringOf(L"metadata.rev"); int metadataSize = jResp.IntOf(L"metadata.size"); const wchar_t *metadataPath_lower = jResp.stringOf(L"metadata.path_lower"); const wchar_t *metadataPath_display = jResp.stringOf(L"metadata.path_display"); bool metadataSharing_infoRead_only = jResp.BoolOf(L"metadata.sharing_info.read_only"); const wchar_t *metadataSharing_infoParent_shared_folder_id = jResp.stringOf(L"metadata.sharing_info.parent_shared_folder_id"); const wchar_t *metadataSharing_infoModified_by = jResp.stringOf(L"metadata.sharing_info.modified_by"); bool metadataIs_downloadable = jResp.BoolOf(L"metadata.is_downloadable"); bool metadataHas_explicit_shared_members = jResp.BoolOf(L"metadata.has_explicit_shared_members"); const wchar_t *metadataContent_hash = jResp.stringOf(L"metadata.content_hash"); const wchar_t *link = jResp.stringOf(L"link"); int i = 0; int count_i = jResp.SizeOfArray(L"metadata.property_groups"); while (i < count_i) { jResp.put_I(i); template_id = jResp.stringOf(L"metadata.property_groups[i].template_id"); j = 0; count_j = jResp.SizeOfArray(L"metadata.property_groups[i].fields"); while (j < count_j) { jResp.put_J(j); name = jResp.stringOf(L"metadata.property_groups[i].fields[j].name"); value = jResp.stringOf(L"metadata.property_groups[i].fields[j].value"); j = j + 1; } i = i + 1; } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.