【问题标题】:Box API 2.0 downloading fileBox API 2.0 下载文件
【发布时间】:2012-05-01 03:18:47
【问题描述】:

尝试使用新 API 下载文件。但是我得到一个错误(NotFound)

使用旧 API 我下载得很好:

wcGetFile.DownloadStringAsync(new Uri("https://www.box.net/api/1.0/download/" + auth_token + "/2111821875"));

使用新 API,这是我的代码:

wcGetFile.Headers[HttpRequestHeader.Authorization] = "BoxAuth api_key=" + api_key + "&auth_token=" + auth_token;
        wcGetFile.DownloadStringAsync(new Uri("https://api.box.com/2.0/files/2111821875/data"));

该文件确实存在,因为如果我从通话结束时删除“数据”,我会得到没有错误的文件信息。

wcGetFile.Headers[HttpRequestHeader.Authorization] = "BoxAuth api_key=" + api_key + "&auth_token=" + auth_token;
        wcGetFile.DownloadStringAsync(new Uri("https://api.box.com/2.0/files/2111821875"));

根据文档,信息和实际文件之间的唯一区别是 url 的“数据”部分。但这似乎对我不起作用。

【问题讨论】:

    标签: .net rest box-api


    【解决方案1】:

    看起来我们遇到了一个阻止下载的小错误。如果您使用“https://www.box.com/”而不是“https://api.box.com/”,则下载应该可以工作。不过,我们现在正在努力修复这个错误!

    【讨论】:

      【解决方案2】:

      我不确定你是否仍然对答案感兴趣,但这段代码对我来说效果很好:

      public static Task DownloadFile(string fileId, string location, string authToken) {
          var auth = string.Format("Authorization: BoxAuth api_key={0}&auth_token={1}", ApiKey, authToken);
          var uri = new Uri(string.Format("https://api.box.com/2.0/files/{0}/data", fileId));
      
          var client = new WebClient();
          client.Headers.Add(auth);
          return client.DownloadFileTaskAsync(uri, location);
      }
      

      【讨论】:

        猜你喜欢
        • 2012-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-02
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多