javascript - 请求 Stack Overflow API 返回奇怪的响应

标签 javascript node.js npm stackexchange-api

我正在使用以下代码调用 Stack Overflow API:

var request = require('request');
var url = 'http://api.stackexchange.com/2.2/search?order=desc&sort=activity&tagged=node.js&intitle=node.js&site=stackoverflow';
request({
    headers: {
        'Accept': 'application/json; charset=utf-8',
        'User-Agent': 'RandomHeader'
    },
    uri: url,
    method: 'GET'
}, function(err, res, body) {
    console.log("response.statusCode" + res.statusCode);
    console.log("response.headers" + JSON.stringify(res.headers));
    console.log("res" + JSON.stringify(res));
    console.log("resParse" + JSON.parse(res));
});

此代码以奇怪的字符形式返回响应:

res{"statusCode":200,"body":"\u001f�\b\u0000\u0000\u0000\u0000\u0000\u0004\u0000��{��H���\n�I�]M���̬U�5ݳ7=�3�ک�mݝN��L�t��\u0005\\\u001e�h��E��q�]����\\�\u0011�ɏxe��\"���\\���o�J?�\u001f���o�jq�X�����<���A?ݸv6Z���\u0012~F�N���v�?7�|��bq�ۢ��mՈ���Ŷ��Cj\u0016��b�I�\u001e��\u001b�����iY��\u001aw�\"Oҕ}H��ѝ\\Vզ�\r\u0002����m�c\u001b�����:�\bsJ\u0010f���\u0012��M\u001aW�¾w�߭t\u0001\u001an\u0016&-7+����)�_�Oz�}��\u0005�\\����*p�������\u0016�*���p�Y\u0006�m\u0007e-�?:��o\u0016i���rW��m�W��Y<�v�\u0010�۬��˛E3�;�n\u0016e�\u0017����e���*}J����\u0015\u001c��0,B���\".l��#����e}�-*\u0015��\u0018��gӉ�A'\u0013\u001c���\u0014��o\u001f3�undefined:1
[object Object]

相同的代码适用于不同的 API 调用。有人可以建议出了什么问题吗?

最佳答案

Stackoverflow 使用 compression回应您的要求。我使用以下方法得到了正确的响应:

var request = require('request');
var url = 'http://api.stackexchange.com/2.2/search?order=desc&sort=activity&tagged=node.js&intitle=node.js&site=stackoverflow';
request({
headers: {
    'Accept': 'application/json; charset=utf-8',
    'User-Agent': 'RandomHeader' 
         },
     uri: url,
     method: 'GET',
     gzip: true
         },
  function(err, res, body) {
     console.log("response.statusCode" + res.statusCode);
     console.log('server encoded the data as: ' + (res.headers['content-encoding'] || 'identity'))
     console.log('the decoded data is: ' + body)  
   });

关于javascript - 请求 Stack Overflow API 返回奇怪的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519358/

相关文章:

javascript - Node Live-server 突然停止工作,现在显示奇怪的东西

json - 调用函数 'makeDecorator' ,不支持函数调用

javascript - 等待隐藏 div 直到它加载

javascript - 用 jquery 替换第一个标题文本

javascript - 更改 contentEditable div 后如何制作可点击的链接?

javascript - 困惑为什么我在 Node.js (require.js) 中得到这个错误

node.js - 通过 AWS SDK 部署 EB

javascript - 如何对 ViewModel 的多个元素进行排序 - Knockout

node.js - 无法使用 Express API 和 Node JS(Angular4) 将数据发布到 mongo db

javascript - 是否可以使用nodejs/npm启动具有不同权限的js文件?