[英]how do I get data back from a nodejs http request?
我的目的超出了这个简单的请求,但是我试图发出一个http请求并获得响应。
我已经从nodejs.org http请求中复制了代码以尝试发出http请求。 我已经修改了端点和REST动词。
该代码检索页面并将此消息写入控制台(我的快速服务器输出的控制台),然后挂起。 它显示“没有更多数据作为响应。收到结束信号。” 在显示目标页面的html之后。
我通过网页和邮递员得到了这个悬而未决的回复。
输出反映响应中的状态200。 链接页面说事件按以下顺序发生:“套接字”“响应”“数据”“结束”“关闭”
如何停止挂起的响应? 结束事件正在触发,我是否必须自己触发关闭事件?
另外,返回响应主体的首选方法是什么? 所有示例都转到console.log。
请不要发布任何有关附加图书馆的信息。 我想使它工作,因为它在node.js页面上做了广告。
const options = {
hostname: 'junto-peace.com',
port: 80,
path: '/story.html?article=peace',
method: 'GET'
};
let body = ''
const req = http.request(options, (res) => {
console.log(`STATUS: ${res.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`);
body += chunk;
});
res.on('end', () => {
console.log('No more data in response. End signal received.');
});
});
//EDIT: The code never reaches the next line:
console.log('outside of http.request. This line is never reached');
req.on('error', (e) => {
console.error(`problem with request: ${e.message}`);
});
// write data to request body
req.write(body);
req.end();
控制台的输出显示页面的html,控制台的输出结尾显示为:“没有更多数据响应。收到结束信号。”
也就是说,这条线永远不会到达:console.log('http.request的外部。这条线永远不会到达');
编辑:我在http.request代码调用后添加了console.log。 代码“挂起”或永不到达那里。 编辑2:如前所述,此代码本身可以从命令行正常运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.