无法使用节点http模块获得对实时网站URL的http请求的响应

时间:2019-08-29 11:26:21

标签: node.js http protractor

基本上,我想测试500多个实时网站URL,并使用量角器获取它们的statusCode并从节点的http模块获得帮助。 但是我没有得到任何回应,并且在我的终端中忽略了与http请求相关的所有控制台语句。

我尝试使用一些外部库,例如axios和protractor-http-client,但是所有这些都给我相同的结果。 我正在使用TypeScript。

import request from 'request' // tried this one earlier instead of http
import https from 'https';
async testFunction () {
   const req = await https.get('https://www.google.com');
        let body = '';
        req.on('data',(d) => {
            body += d;
        });
        req.on('end',(resp) => {
            console.log(resp.statusCode); // Not printing in terminal at all
            body = JSON.parse(body);
        });
        req.on('response', (resp) => { // also tried information instead of response
           console.log(resp.statusCode); // Not printing in terminal at all
        });
        console.log(body); // printing as empty
    }
}

我希望响应状态代码为200。 我对量角器和节点都是新手。因此,任何形式的帮助和建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

const http = require('http');
const res = http.request({        
    host: 'google.de', 
    method: 'get',
    path: '/'
}, (response) => {
    let dataStr = [];
    const receiveData = chunk => {
       const b = Buffer.from(chunk);
       dataStr.push(b);
    };
    response.on('end', () => {
        console.log('status Code:', response.statusCode);
        console.log('response:', Buffer.concat(dataStr).toString());
    });
    response.on('error', (e) => console.error(e));
    response.on('data', receiveData);
});
res.end();