gpt4 book ai didi

node.js 无法使用 http 进行 rest 调用

转载 作者:可可西里 更新时间:2023-11-01 16:56:26 25 4
gpt4 key购买 nike

我是 node.js 的新手,我正在尝试发出 http 请求。我遵循了尝试调用 random.org 的教程。这是我的 app.js 文件:

var http = require('http');

//The url we want is: 'www.random.org/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new'
var options = {
host: 'www.random.org',
path: '/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new'
};

callback = function(response) {
var str = '';

//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});

//the whole response has been recieved, so we just print it out here
response.on('end', function () {
console.log(str);
});

response.on('error', function () {
console.log("err");
});
}

http.request(options, callback).end();

所以,无论如何,当使用

运行这个文件时
node app.js

我在控制台收到以下错误:

C:\Program Files\nodejs>node app.js

events.js:72
throw er; // Unhandled 'error' event
^
Error: connect ETIMEDOUT
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)

2个问题:
1. 为什么我会收到超时错误(该网站有效 - 我检查过)
2. 无论如何 - 尽管我在响应中有一个错误监听器,但为什么我没有捕捉到这个错误。

我们将不胜感激任何可能的帮助!

谢谢

最佳答案

您将错误监听器附加到响应,但错误发生在请求本身。做这样的事情:

http.request(options, callback)
.on('error', function () {
console.log("err in request");
})
.end();

该错误表示该站点可用,否则该错误将显示 EHOSTUNREACHETIMEDOUT 表示请求响应不够快。它需要一些调查,就像网络中断一样,尝试访问 www.google.com。它正在考虑的超时值是多少?等等

关于node.js 无法使用 http 进行 rest 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056267/

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