我使用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 })
};
});
答案 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\"}');