2012-03-10 31 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