Want to know more about Dash? Check out how Amy uses Dropbox and Dash to make her day easier here!
Forum Discussion
mpalmer-sps
8 years agoExplorer | Level 3
HTTP Request in C# using WebClient
I'm trying to get the contents of a folder for downloading from Dropbox in C# using the HTTP libraries. So far I've been trying to use a console application project in Visual Studio but don't seem to be making alot of headway.
What I would like to do is A) See if there are files in the folders and then B) download then to a location (in this case a SharePoint library but I can't seem to make the initial connection using .Net 3.5
Code sample so far:
static void Main(string[] args) { using (WebClient client = new WebClient()) { var URI = new Uri("https://api.dropboxapi.com/2/files/list_folder"); client.Headers.Set("Content-Type", "application/json"); client.Headers.Add("Authorization", "Bearer <MyApplicationAccessToken>"); // data var reqparm = new System.Collections.Specialized.NameValueCollection(); reqparm.Add("path", "/<MyApplicationFolder>/"); reqparm.Add("recursive", "false"); reqparm.Add("include_media_info", "false"); reqparm.Add("include_deleted", "false"); reqparm.Add("include_has_explicit_shared_members", "false"); reqparm.Add("include_mounted_folders", "true"); byte[] reqBytes = Encoding.ASCII.GetBytes(reqparm.ToString()); byte[] responsebytes = client.UploadData(URI, "POST", reqBytes); string responsebody = Encoding.UTF8.GetString(responsebytes); } }
Any ideas? Cant use the .Net SDK
6 Replies
Replies have been turned off for this discussion
- Greg-DB8 years ago
Dropbox Community Moderator
To list files in a folder, you should use /2/files/list_folder and /2/files/list_folder/continue. To download files, you should use /2/files/download.
If an API call fails, the response will contain an error. What response body are you getting back?
- mpalmer-sps8 years agoExplorer | Level 3
Thanks Greg, I'm getting a 400 Error (Bad Request) . However, I'm able to use the same parameters and headers in RestMan via Chrome but I don't "fool" the Server into thinking this is coming from a Browser.
Is there a functional code sample using C# and HTTP for DropBox?
- mpalmer-sps8 years agoExplorer | Level 3
RestMan setup
Above is a Restman call that gives me a cursor - so I'm trying to replicate that request in code.
- Greg-DB8 years ago
Dropbox Community Moderator
We recommend just using the official .NET SDK, so we don't have a sample for doing this directly.
Anyway, the error information you shared is just the status code/line. The response body should contain a more useful error message. Checking the response body is generally the best first step in debugging these. Can you print that out? Thanks in advance! - mpalmer-sps8 years agoExplorer | Level 3
It looks like the parameters I'm sending are not in JSON format (see below):
- Greg-DB8 years ago
Dropbox Community Moderator
Thanks! That's correct, that error message indicates that the request body (containing the API call parameters) wasn't valid JSON as required.
Looking at your code, that seems likely, as I don't see where you're building it as JSON, and the code you're calling presumably doesn't default to returning JSON.
You should update your code to take your parameters and format them as a JSON string for use in the request body. You'll probably want to use a JSON library for that, such as Json.NET.
About Apps and Installations
Have a question about a Dropbox app or installation? Reach out to the Dropbox Community and get solutions, help, and advice from members.
Need More Support
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!