我正在尝试访问api,我需要传递api密钥和api秘密,但我在Node JS中执行此操作。 在Python中,您可以这样做:
requests.get('https://api.github.com/user', auth=('user', 'pass'));
我的问题是我如何在Node JS中实现这一目标?我是否在标题中包含密钥和密钥或将其包含在选项对象中?
这是代码:
var options = {
host:'linktowebsite',
path:'/data',
headers: {
' Content-Type': 'application/x-www-form-urlencoded'
}
};
var req = http.request(options, function(res) {
console.log(`STATUS: ${res.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`);
});
res.on('end', () => {
console.log('No more data in response.');
});
});
req.on('error', (e) => {
console.log(`problem with request: ${e.message}`);
});
答案 0 :(得分:2)
在这里,
var options = {
host:'linktowebsite',
path:'/data',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization' : "Basic " + new Buffer(username + ":" + password).toString("base64")
}
};
答案 1 :(得分:1)
const needle = require('needle');
let options = { username: 'user', password: 'pass' };
needle.get('https://api.github.com/user', options, (err, resp, body) => {
// Whatever
})
const request = require('request');
request.get('https://api.github.com/user', (err, resp) => {
// Whatever
}).auth('username', 'password', false);