Dropbox下载文件API停止工作,出现400错误

时间:2017-03-13 01:54:15

标签: javascript http angular dropbox-api

我使用dropbox下载文件API,我有一个令牌,但它返回400错误请求错误 "调用API函数时出错"文件/下载":必须提供HTTP标头"授权"或URL参数"授权"

我遵循dropbox api doc,但它不能工作〜""〜 我如何解决它 ?

这是我的代码(angular2)

downloadFile(fileid){
let headers = new Headers();

headers.append('Authorization', 'Bearer ' + this.accessToken);
headers.append('Dropbox-API-Arg','path:'+ fileid);

return this.http.post('https://content.dropboxapi.com/2/files/download',new RequestOptions({ headers: headers ,responseType:ResponseContentType.ArrayBuffer})).map((res) => {

  let arrayBuffer = res.arrayBuffer();
  let contentType = res.headers.get('content-type');
  return {
    fileid: fileid,
    blob: new Blob([arrayBuffer], { type: contentType })
  };
});

1 个答案:

答案 0 :(得分:3)

我在android中使用dropbox v2 api。就像你一样,我得到了400个不好的请求。事实证明,Android HttpUrlConnection设置了一个默认的" Content-Type"标头值。 Dropbox下载api需要" Content-Type"失踪或空虚。我在iOS上也没有相同的问题。

所以也许在angular2中,你需要做类似的事情:

headers.append('Content-Type','');

Dropbox-API-Arg'标题需要像:

headers.append('Dropbox-API-Arg','{\"path\": \"/filepath\"}');