我有一个特别有趣的问题,所以我正在尝试使用Stackoverflow Search/Advanced 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);
});
}`
我使用邮递员本身为请求生成了代码,我在不同的 API 上尝试了它,相同的代码工作正常。
我需要帮助弄清楚如何获取 JSON 作为响应。
以下是响应:
缓存控制:私有 内容类型:应用程序/JSON;字符集=UTF-8 内容编码:gzip 访问控制允许来源: * 访问控制允许方法:获取、开机 访问控制允许凭据:假 x-内容类型选项:嗅探 日期:2018 年 1 月 21 日星期日 16:12:19 GMT 连接:关闭 内容长度:4780
下面是返回的数据示例:
U " z f% -??Ƶm N | f& fે n ."DX Ƀ P J ( p U Q N47 1 M . |]t5agA 0 rc g 3 } + Y q/pL M RƜGwt B ڍ @ 9(>s ʀ6 @ w e/Mu ʮ 9,ML| s9 a ؑW r [ ؗa a ~6>ۦ u 3 a |P- ᣖ S' � 原因在于,#v D PXM i ȹ O {2N s ? ڝ O_/ř M3 w g" $ (%" r#S Px3 ;?4^} n S f7U[ g7 a cȩbâ Oq X,8w 5Szp P y rg
okoSHcY c\ TW0ƊLM oN9دhV trj * cPٝ ~l E ́Ѳ o3Dp Eus侫 L R n i '+ DF h $~377s= W xP # CAN 1 T Ub0c$ e S & B } ~ Q m m a | sL Y;z8 T} j~ ]ٽ} El ]| B *nt ^ , k' 7 J IO i d m 4" N DZ 1䞦' [ & j ~ 6 ).G v= gn x4 6nh V o ) ^ಧ 2 ['6 z #/J j+vD xƍ)N qC[C U Z| VH_> GD 9 v . i U zJ , *J RBt s iTʯo f ^A3 $ "7 N ! l b," 96 @ C . a 52'a v U 9 v] l ~kΎ Tƍ 藊<9 eN;]嘟嘟?;cu L u} t q;৯ = Y ZK AL. L
您收到的响应是 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' } };