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

时间:2015-06-11 08:52:34

标签: javascript json node.js

美好的一天,我正在尝试使用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');但它不起作用

1 个答案:

答案 0 :(得分:4)

相关网址会返回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(它不是'),你会得到那些奇怪的字符。