2012-03-10 70 views
0

我正在尝试编写脚本,该脚本将访问localhost上的脚本并将其解析为node.js脚本。这是我走到这一步:解析来自node.js脚本的HTTP请求

var http = require('http'); 

var options = { 
    host:'127.0.0.1', 
    port:'80', 
    path:'/index.php' 
} 
var a = http.get(options, function(res){ 
    res.on('data', function(chunk){ 
     console.log(chunk); 
    }); 
    //console.log(res); 
}); 

但是,这是所有返回: <Buffer 7b 22 61 77 65 73 6f 6d 65 22 3a 22 79 65 61 68 21 22 7d>

我知道这是某种形式的流,但我不知道该怎么办。

回答

3

在添加侦听器之前,您需要将响应对象的编码设置为'ascii','utf8'或'base64'之一。例如:

var a = http.get(options, function(res) { 
    res.setEncoding('utf8'); 
    res.on('data', function(chunk) { // no longer emits a Buffer object 
     console.log(chunk); 
    }); 
}); 
+0

或只使用'chunk.toString()'或'chunk.toString( 'utf-8')' – 2012-03-10 02:13:31

+0

@AndreySidorov这样做,可以打破多字节字符。 – loganfsmyth 2012-03-10 02:31:55

+0

@loganfsmyth true – 2012-03-10 03:42:15