解析来自node.js脚本的HTTP请求
问题描述:
我正在尝试编写脚本,该脚本将访问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>
我知道这是某种形式的流,但我不知道该怎么办。
答
在添加侦听器之前,您需要将响应对象的编码设置为'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);
});
});
或只使用'chunk.toString()'或'chunk.toString( 'utf-8')' – 2012-03-10 02:13:31
@AndreySidorov这样做,可以打破多字节字符。 – loganfsmyth 2012-03-10 02:31:55
@loganfsmyth true – 2012-03-10 03:42:15