Nodejs - request.get(url)返回二进制数据在yahoo.com的情况下

nodejs - request.get(url) returning binary data in case of yahoo.com

本文关键字:数据 yahoo com 情况下 二进制 返回 request get url Nodejs      更新时间:2023-09-26

我正在尝试运行以下javascript代码。

request = require('request')
request.get('https://www.yahoo.com',function(err,res,body){ console.log(err ? err.message : body) })

但是它正在记录二进制数据,而html字符串是预期的。

如果我用不同的url(如https://www.google.com)替换第一个参数,则相同的代码返回html响应。

我在ruby中尝试了相同的代码

require('open-uri')
puts open('https://www.yahoo.com').read

在两种情况下都返回正确的html响应。

我想我在使用nodejs的request包时错过了一些东西。

您只看到gzip编码的html字符串。使用gzip选项(docs)获取解压后的正文。

request.get({url: 'https://www.yahoo.com', gzip: true}, function(err,res,body){ console.log(err ? err.message : body) })