2

新しい 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 の「データ」部分です。しかし、それは私にはうまくいかないようです。

4

2 に答える 2

1

あなたがまだ答えに興味があるかどうかはわかりませんが、このコードは私にとってはうまくいきます:

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-06-18T04:23:32.190 に答える
1

ダウンロードを妨げているマイナーなバグが発生しているようです。「https://api.box.com/」の代わりに「https://www.box.com/」を使用すると、ダウンロードが機能するはずです。ただし、現在バグの修正に取り組んでいます。

于 2012-05-01T23:06:22.647 に答える