Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js http.get请求的特殊输出?_Node.js_Http - Fatal编程技术网

Node.js http.get请求的特殊输出?

Node.js http.get请求的特殊输出?,node.js,http,Node.js,Http,我尝试在重定向之后发出一个简单的http请求: http.get('http://www.example.com/', function(res){ var data = []; res.on('data', function(chunk){ data.push(chunk) }).on('end', function(){ var buffer = Buffer.concat(data); // console.log(buffer.toString('b

我尝试在重定向之后发出一个简单的http请求:

http.get('http://www.example.com/', function(res){
  var data = [];

  res.on('data', function(chunk){
    data.push(chunk)
  }).on('end', function(){
    var buffer = Buffer.concat(data);
    // console.log(buffer.toString('base64')) //This outputs random string
    console.log(buffer)
 })
})
我得到的回应是:

<Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64 3e 0a 20 20 20 20 3c 6d 65 74 61 20 68 74 74 70 2d 65 71 75 69 76 ... >

这个错误是由
引起的,这里发生的是将响应数据解析为二进制数据(缓冲区),并将二进制数据推送到数组中。您在控制台中看到的二进制对象实际上是预期行为:)

如果需要JSON响应,则需要将数据缓冲区附加到字符串,然后对其进行解析:

http.get('http://echo.jsontest.com/key/value/one/two', function(res){
    var data = '';

    res.on('data', function(chunk){
        data += chunk;
    }).on('end', function(){
        var json = JSON.parse(data);
        console.log(json);
    });
});
现在我们已经解决了这个问题,请看一看-它使API调用比本机HTTP模块更容易;)

没问题!
http.get('http://echo.jsontest.com/key/value/one/two', function(res){
    var data = '';

    res.on('data', function(chunk){
        data += chunk;
    }).on('end', function(){
        var json = JSON.parse(data);
        console.log(json);
    });
});