gpt4 book ai didi

javascript - 不在 header 中发送 userAgent,Node.js 控制台应用程序

转载 作者:行者123 更新时间:2023-11-30 20:59:02 24 4
gpt4 key购买 nike

我刚刚开始学习 javascript 和 https 请求。我在 Visual Studio 2017 中工作,我从模板创建了一个空白的 javascript 控制台应用程序并添加了以下代码。

const https = require('https');

const options = {
hostname: 'api.gdax.com',
path: '/products/BTC-USD/stats',
method: 'GET',
agent: false
};

const req = https.request(options, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);

res.on('data', (d) => {
process.stdout.write(d);
});
});

req.on('error', (e) => {
console.error(e);
});
req.end();

我从服务器得到的响应是

{"message":"User-Agent header is required."}

当我导航到 https://api.gdax.com/products/BTC-USD/stats 时在我的浏览器中,我得到了正确的响应。为什么我不能在 javascript 控制台中执行相同的操作?

最佳答案

那是因为该特定 API 会阻止任何没有 User-Agent header 的请求。

只需添加标题,它就可以正常工作:

const https = require('https');

const options = {
hostname: 'api.gdax.com',
path: '/products/BTC-USD/stats',
method: 'GET',
agent: false,
headers: {
'User-Agent': 'something',
},
};

const req = https.request(options, res => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);

res.on('data', d => {
process.stdout.write(d);
});
});

req.on('error', e => {
console.error(e);
});
req.end();

关于javascript - 不在 header 中发送 userAgent,Node.js 控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47313250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com