我正在编写一个node.js cli 来学习HTTP 请求。我想下载一个文件并将其保存到本地文件夹。我遇到的问题是从 Dropbox 获取文件。我已经阅读他们的 API 一天左右了,但仍然不明白如何导航它。这是我的代码:
var https = require('https'),
clc = require('cli-color'),
options = {
protocol: 'https:',
hostname: 'www.dropbox.com',
path: '/1/oauth2/authorize?client_id=<<my-id>>response_type=code',
method: 'GET'
},
token;
var req = https.get(options, function (res) {
if (res) {
console.log(clc.green('success'));
}
res.on('data', function (data) {
console.log(data);
})
});
我正在遵循 Dropbox API 的 code
OAuth 授权流程。当我运行 index.js
文件时,它返回的数据如下所示:
<Buffer 6f 6d 70 6f 6e 65 6e 74 73 5f 5f 69 6e 70 75 74 2e 54 65 78 74 49 6e 70 75 74 2c 20 5b 5d 29 3b 20 7d 28 6d 6f 64 75 6c 65 73 5f 5f 63 6c 65 61 6e 5f ... >
这是授权码吗?如果没有,我该如何获取并存储它?
最佳答案
data
是一个包含一些原始响应数据的Buffer
。您可以连接每个数据
直到响应完成。我应该指出,响应似乎是 javascript(如果您将缓冲区转换为字符串或以其他方式将十六进制字节转换为字符串),因此您可以尝试以下操作:
https.get(options, function(res) {
var buf = '';
res.on('data', function(data) {
buf += data;
}).on('end', function() {
console.log('Response:');
console.log(buf);
});
});
此外,protocol: 'https:',
不是必需的,https
模块不会使用它。
关于javascript - 在 Node.js cli 中从 Dropbox 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211710/