我正在尝试使用Node& amp解析JSON响应Request。 JSON响应来自Apple,所以我认为它是完全有效的JSON。此外,如果我使用Chrome上的Post Master发送请求,则原始响应似乎完全有效。我甚至使用burp suite来接收原始字节响应 - 如果响应中有一个错误的字节 - 再次,一切似乎都很好。
但是,以下代码为每个日志语句打印出完整的垃圾(我在多台计算机上尝试过这种情况,并使用不同版本的Node& Request无效):
request(postOptions, function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
console.log(body.toString());
console.log(JSON.parse(body));
}
});
postOptions
的位置:
var postOptions = {
url: '_THE_VALID_URL_',
followAllRedirects: true,
method: 'POST',
body: '_THE_VALID_BODY_',
headers: {
'Connection': 'keep-alive',
'Cache-Control': 'no-cache',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36',
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-US,en;q=0.8,pt;q=0.6',
}
}
我确保所有参数与我在使用Post Master发出POST请求时使用的参数相同。
打印的内容如下:
R n1 k - V $Pr Ib _Ҕ &i # { Yp ފH〜eNKXbn | 2HDeD ^ YJB,fkuDj @表示P Jɍpc-pOuaQIc> ^ HD0%5℃; G#5mYV {H 库恩/ 8B虬yV8 @ F%Mςb\ tS'M | 2 o_ {ÙB # S *< {_ q25ؘ sSa ^ Frp qn ɾVr S% l .f 7ڃ ? 0 ɖ ( P ~ T U
有人可以帮帮我,不知道下一步该尝试什么!感谢
答案 0 :(得分:8)
感谢@KevinB - gzipping就是问题所在。
默认情况下,请求模块不会解压缩gzip压缩响应。在gzip: true
中包含postOptions
可确保响应已解压缩而且不再有垃圾!