2012-05-01 90 views
1

试图使用新API下载文件。但是,我得到一个错误(NOTFOUND)Box API 2.0下载文件

随着旧的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的'data'部分。但这似乎并不适用于我。

回答

1

看起来我们正在遇到一个小问题,即阻止下载。如果您使用'https://www.box.com/'而不是'https://api.box.com/',则下载应该可以正常工作。但是,我们正在努力修复此错误!

+0

我已尝试改变,但我得到了同样的错误。 – zawisza

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