我从 dropbox api 收到错误:
调用 API 函数“files/download”时出错:HTTP header “Dropbox-API-Arg”:无法将输入解码为 JSON。
let url = 'https://content.dropboxapi.com/2/files/download'
let headers = new Headers({ });
headers.append('Authorization', 'Bearer ...');
headers.append('Dropbox-API-Arg', '/readme.txt');
let options = new RequestOptions({ headers: headers });
this.http
.get(url, options)
.subscribe(this.fileContent)
这是他们在 API 上放置的示例:
curl -X POST https://content.dropboxapi.com/2/files/download \
--header "Authorization: Bearer <get access token>" \
--header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Prime_Numbers.txt\"}"
我可能在 Angular 上弄错了标题,我以前从未使用过它们。
编辑:路径变量是一个等于文件路径的字符串。即“readme.txt”
最佳答案
本质上,变量 path
的格式与 API 期望的不符。
我添加了链接提供的实用函数:
var charsToEncode = /[\u007f-\uffff]/g;
function http_header_safe_json(v) {
return JSON.stringify(v).replace(charsToEncode,
function(c) {
return '\\u'+('000'+c.charCodeAt(0).toString(16)).slice(-4);
}
);
}
编辑
您的path
变量应如下所示:
var path = {
path: '/readme.txt'
};
关于javascript - 我在这个 Angular HTTP 请求中做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853774/