从https.request获取正文

时间:2018-11-20 17:31:51

标签: node.js

我有一个来自here

的示例
const https = require('https');

const options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET'
};

const req = https.request(options, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});

req.on('error', (e) => {
  console.error(e);
});
req.end();

https.request响应中,如何获取响应的正文(html)。我的意思是要在process.stdout.write(d);的d对象中使用哪个属性?

1 个答案:

答案 0 :(得分:2)

在上面给出的示例中, process.stdout.write(d)将响应主体写入控制台。如果要使用 console.log(),则可以按以下方式使用它,

 res.on('data', (d) => {
    process.stdout.write(d);
    console.log(d.toString('utf8'));
  });

d.toString('utf8')是必需的,因为 d 是一个缓冲区变量,并且必须转换为 utf8 字符串。

  

d.toString('utf8')

上面将缓冲区转换为字符串。