繁体   English   中英

如何从Node.js HTTP请求取回数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM