Box API 2.0下载文件

时间:2012-05-01 03:18:48

标签: .net rest box-api

尝试使用新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"));

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我不确定你是否仍对这个答案感兴趣,但这段代码对我很有用:

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);
}