繁体   English   中英

Json http.get Node.js提供了错误的数据

[英]Json http.get nodejs gives wrong data

美好的一天,我正在尝试使用http.get获取json文件

 http.get("http://steamcommunity.com/profiles/76561197993482001"+ "/inventory/json/730/2",function(res){ var chunk2=''; res.on('data',function(chunk){ chunk2+=chunk; }); res.on('end',function(){ console.log(chunk2); }); }); 

但是在我的控制台中,只有以下5个奇怪的字符: (以及其中一些带有数字的正方形)

到底是怎么回事? 谢谢

编辑我尝试添加res.setEncoding('utf8'); 但它不起作用

有问题的URL返回302(重定向)状态代码,因此您应检查res.statusCode并使用响应中提供的Location标头(指向实际位置)重新发出请求。 或者,您可以使用request模块,该模块将为您处理重定向。

至于您得到的数据:服务器确实返回了302响应的内容主体,并且该内容由一个26字节的gzip压缩文档组成,该文档似乎不包含任何内容:

$ curl --silent --no-location 'http://steamcommunity.com/profiles/76561197993482001/inventory/json/730/2' | gunzip | wc -c
       0

由于Node将响应解释为UTF-8(不是),因此您会得到那些奇怪的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM