Want to know more about Dash? Check out how Amy uses Dropbox and Dash to make her day easier here! 

Forum Discussion

mpalmer-sps's avatar
mpalmer-sps
Explorer | Level 3
8 years ago

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
  • mpalmer-sps's avatar
    mpalmer-sps
    Explorer | Level 3
    8 years ago

    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-sps's avatar
    mpalmer-sps
    Explorer | Level 3
    8 years ago

    RestMan setup

    Above is a Restman call that gives me a cursor - so I'm trying to replicate that request in code.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    8 years ago
    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-sps's avatar
    mpalmer-sps
    Explorer | Level 3
    8 years ago

    It looks like the parameters I'm sending are not in JSON format (see below):

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    8 years ago
    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!