我正在尝试将获取请求发送到服务器。但是我遇到了以下错误,您知道如何避免该错误吗?
错误:
events.js:183 投掷者//未处理的“错误”事件 ^
错误:连接ECONNREFUSED ****** 在Object._errnoException(util.js:992:11) 在_exceptionWithHostPort(util.js:1014:20) 在TCPConnectWrap.afterConnect上[作为oncomplete](net.js:1186:14)
我的请求
var https = require("https");
// Update these options with the details of the web service you would like to call
var options = {
method: 'GET',
uri: 'https:*****',
resolveWithFullResponse: true,
json: true
};
var req = https.request(options, res => {
res.setEncoding('utf8');
var returnData = "";
res.on('data', chunk => {
returnData = returnData + chunk;
});
res.on('end', () => {
console.log('returndata: ' + JSON.stringify(returnData))
var pop = JSON.parse(returnData).population;
callback(pop);
});
});
req.end();
答案 0 :(得分:0)
有两种方法来定义要传递给https.request()
的请求选项:
通过将hostname
,path
和(可选)port
指定为单独的请求选项:
var options = {
method: 'GET',
hostname: 'jsonplaceholder.typicode.com',
path: '/posts/1',
port: 443
};
通过使用创建url.URL的实例:
var URL = require('url').URL;
var options = new URL('https://jsonplaceholder.typicode.com/posts/1');
有关更多信息,请参阅官方documentation。
答案 1 :(得分:0)
这里是一个示例,您不能在options对象上设置uri,您不能使用uri字符串/ URI对象,或者对此选项类型使用options对象(请参见Node.js http.request docs)
const https = require('https');
const options = {
hostname: 'jsonplaceholder.typicode.com',
path: '/todos/1',
};
const req = https.request(options, (res) => {
let returnData = "";
res.on('data', chunk => {
returnData = returnData + chunk;
});
res.on('end', () => {
console.log('returndata: ', returnData);
});
});
req.on('error', (e) => {
console.error(e);
});
req.end();