尝试使用新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"));
根据文档,信息和实际文件之间的唯一区别是网址的“数据”部分。但这似乎对我不起作用。
答案 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);
}