1

我正在使用麦克尔/请求。我在使用某些网页时遇到问题:

var url='http://www.youtube.com/watch?v=YbP1K-bQB6g&list=SP018BE450221B431B';
var request = require('request');
request(url, function (error, response, body) {      
    console.log(body);      
})

这将打印格式良好的 html 正文。有时使用不同的 url,它会打印如下内容:

ÿÿ´Wmo7þ|ú¦{@ã »ZÉ9ŸãÄ2 ØªOl+¶Ü4W½K­èì’[’+K.úé~ ecc...

但是当我通过浏览器浏览它时,我可以清楚地看到页面。有什么建议吗?我已经尝试使用 StringDecoder 对其进行解码,但什么也没有……我正在使用此 url 来获取错误:

http://www.agi.it/estero/notizie/201210250805-est-rt10017-performance_stellari_e_10_ore_autonomia_e_gia_ipad_mini_mania
4

1 回答 1

2

看起来,响应是压缩的。如果您无法让服务器遵守您的请求标头,则需要对响应进行解码。

编辑:您可以像这样显式设置请求标头:

request({ url: <your url>, headers: { 'accept-encoding': 'identity' }}, function (error, reponse, body) {
  // You really should receive an un-encoded body, now
});
于 2012-10-25T11:29:36.987 回答