垃圾JSON响应 - 节点请求

use*_*938 4 json request node.js

我正在尝试使用Node&Request解析JSON响应.JSON响应来自Apple,所以我认为它是完全有效的JSON.此外,如果我使用Chrome上的Post Master发送请求,则原始响应似乎完全有效.我甚至使用burp套件来接收原始字节响应 - 如果响应中有一个错误的字节 - 再次,一切似乎都很好.

但是,以下代码为每个日志语句打印出完整的垃圾(我已在多台计算机上尝试过此操作,并且使用不同版本的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));

    }               
});
Run Code Online (Sandbox Code Playgroud)

在哪里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',

    }
}
Run Code Online (Sandbox Code Playgroud)

我已确保所有参数与我使用Post Master发出POST请求时使用的参数相同.

打印的内容如下:

R n1 k - V $Pr Ib _Ҕ &i # { Yp h ~ eNKX b N | 2HDeD ^ YJB,fkuDj @PJɍpc,pOuaQIc > ^hd 0% 5 < G # 5 m YV {H C o o N /8 b 虬yV 8@ f%M ςb\ t S ' M | 2 o_ {ÙB # S *<{_ q؀25ؘ sSa ^ Frp qn ɾVrS% l .f 7ڃ ? 0 ɖ ( P ~ T U

有人可以帮我在这里,不知道下一步该尝试什么!谢谢

use*_*938 8

感谢@KevinB - gzipping就是问题所在.

默认情况下,请求模块不会解压缩gzip压缩响应.包括gzip: truepostOptions确保响应被解压缩,没有更多的垃圾!