【问题标题】:Upload file to API v2 of Box by Webclient通过 Webclient 将文件上传到 Box 的 API v2
【发布时间】:2015-08-06 04:48:28
【问题描述】:

我正在使用 Box API v2,我尝试使用 WebClient 上传文件但没有成功。

来自 API:

curl https://upload.box.com/api/2.0/files/content \
-H "Authorization: Bearer ACCESS_TOKEN" -X POST \
-F attributes='{"name":"tigers.jpeg", "parent":{"id":"11446498"}}' \
-F file=@myfile.jpg

所以我是用 C# 写的:

using (WebClient client = new WebClient())
        {
            client.Headers.Add("Authorization", "Bearer " + Utils.GetAccessTokenFromFile());
            client.Headers.Set("Content-Type", "multipart/form-data; boundary=-handeptrai---");
            NameValueCollection values = new NameValueCollection() { 
                {"attributes","{\"name\":\"test.txt\", \"parent\":{\"id\":\"0\"}}"},
                {"file",@Utils.TestFilePath}
            };
            byte[] result = client.UploadValues("https://upload.box.com/api/2.0/files/content", "POST", values);
            string json = Encoding.UTF8.GetString(result);
        }

当我尝试调试以查看发生了什么时,我在 UploadValues 步骤中什么也没看到。

有什么想法吗?谢谢!

【问题讨论】:

    标签: c# box boxapiv2


    【解决方案1】:

    好的,最后我用HttpClient和MultipartFormDataContent解决了上传问题,这是上传文本文件的最终代码:

            var client = new HttpClient();
            var content = new MultipartFormDataContent();
            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Utils.GetAccessTokenFromFile());
            content.Add(new StreamContent(File.Open(Utils.AnyFilePath, FileMode.Open)), "token", "test.txt");
            content.Add(new StringContent("{\"name\":\"test.txt\", \"parent\":{\"id\":\"0\"}}"), "attributes");
            var result = await client.PostAsync("https://upload.box.com/api/2.0/files/content", content);
            result.EnsureSuccessStatusCode();
            string sContent = await result.Content.ReadAsStringAsync();
    

    然后 sContent 将是包含上传文件详细信息的 json。希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2012-08-20
      相关资源
      最近更新 更多