我有一个特别有趣的问题,所以我试图使用Stackoverflow搜索/高级API来查询stackoverflow来获取问题。我已经尝试使用PostMan及其返回的JSON但在我的Node.js应用程序中它返回原始数据。
exports.GetQuestions = function(query,requestify)
{
var request = require("request");
var options = { method: 'GET',
url: 'https://api.stackexchange.com/2.2/search/advanced',
qs:
{ order: 'desc',
sort: 'activity',
site: 'stackoverflow',
q: 'Error: Can\'t find Python executable
"C:\\Users\\harig\\AppData\\Local\\Programs\\Python\\Python36\\python.EXE",
you can set the PYTHON env variable' },
headers:
{ 'postman-token': 'b0b78842-94cd-a0b9-39cc-0e099136900c',
'cache-control': 'no-cache',
'Accept': 'application/json' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
}`
我使用postman本身为请求生成了代码,我在不同的API上尝试了它,并且相同的代码工作正常。
我需要帮助来弄清楚如何将JSON作为回应。
以下是回复:
缓存控制:私有 content-type:application / json;字符集= utf-8的 content-encoding:gzip access-control-allow-origin:* access-control-allow-methods:GET,POST access-control-allow-credentials:false x-content-type-options:nosniff 日期:太阳,2018年1月21日16:12:19 GMT 连接:关闭 内容长度:4780
以下是返回的数据示例:
U “ZF% - ??ӵmN| F&安培;˚FેN”“DX Ƀ P J ( p U Q N47 1 M . |] t5agA 0 rc g 3 } + Y染色体长臂/pLMRƜGwtBڍ@ 9(大于sʀ6@我们/Muʮ9,< EM> ML | S9AߑWr的[ߗAA〜6个U3A | P-ᣖ S” #vDPXMiȹO{2ns的? ڝ O_ / ř M3 w ܾ g“ $ (%” r#S Px3 ; 4 ^}nSf7U [G7 acȩbҷOqX,8w5SzpPyrg &LT;米; U | AXJ !〜XBK#B5,)W +)+ N [CL()。LC&GT; okoSHcYc \TW0ƊLM ݒoN9دHVT RJ * cPޝ ~l E Ѳ o3Dp Eus侫侫L R n i `+ DF h$ ~377s = W xP #$ CAN1TUb0c ES和B}〜QMM一个| SLY; z8T}Ĵ〜]}埃尔] | B * NT ^, K” 7JIOidm4" NDZ1䞦'[&安培;Ĵ〜6).Gv = GN x4 6nh V o ) ^ಧ 2 ['6 z # / J j+vD xƍ)NQC [CUZ | VH _&GT; gd9v.i UzJ,*JRBtsiӮof^ A3 $ “7N!磅,” 96 @ C.a52'avU9v]升〜kΎԌG藊&LT; 9eN;] TNK? ;cu L u} t q;9 = Y ZK AL. L
答案 0 :(得分:1)
您收到的回复是gzip压缩,如content-encoding: gzip
所示。
在您的选项中设置gzip:true
。
var options = { method: 'GET',
gzip: true,
url: 'https://api.stackexchange.com/2.2/search/advanced',
qs:
{ order: 'desc',
sort: 'activity',
site: 'stackoverflow',
q: 'Error: Can\'t find Python executable
"C:\\Users\\harig\\AppData\\Local\\Programs\\Python\\Python36\\python.EXE",
you can set the PYTHON env variable' },
headers:
{ 'postman-token': 'b0b78842-94cd-a0b9-39cc-0e099136900c',
'cache-control': 'no-cache',
'Accept': 'application/json' } };