我的问题是访问Discord API(api / gateway)时出现301错误
在Postman(REST客户端)中,它工作正常:
但如果我使用我的代码,它总是会返回301错误:
function getGateway(){
http.get({
host: 'discordapp.com',
path: '/api/gateway',
headers: {
'User-Agent': useragent //This is a variable.
}
}, function(res) {
if (res.statusCode === 200) {
var body = [];
res.setEncoding('utf8');
res.on('data', function(chunk) {
body.push(chunk);
});
res.on('end', function() {
body = body.join('');
return body.url;
});
} else {
if (res.statusCode === 429){
setTimeout(function() {
getGateway();
}, parseInt(JSON.parse(res.headers).Retry-After, 10) * 1000)
} else {
console.log('Received non-ok response: ' + res.statusCode);
}
}
});
}
输出:
undefined
Received non-ok response: 301
错误代码301在API文档中甚至没有 有人能看出我做错了吗?
答案 0 :(得分:0)
HTTP code 301表示您尝试访问的网址已被移动。其中一个原因可能是它会自动重定向到API的HTTPS版本。
不幸的是,看起来节点http
模块无法处理以下重定向。我会建议其中一个选项:
http
模块的替代品,如here所述