美好的一天,我正在尝试使用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');但它不起作用
答案 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(它不是'),你会得到那些奇怪的字符。