我正在尝试向here发出请求,如果您点击该链接,您应该会看到JSON响应(如预期的那样)。我试过https和http,它没关系(至少我不这么认为)。
无论如何,当我尝试从命令行获得响应时,我得到非UTF-8字符,如 B E 9作为响应,即使我指定utf-8编码。我已经尝试了npm模块请求并执行节点http / https请求。
我只需要返回一个JSON响应。
我也尝试过JSON.parse(),但无济于事。
这是我试过的代码
var request = require("request")
var url = endpoint;
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body); // Print the json response
}
})
和基本的http请求
var endpoint = 'http://api.stackexchange.com/2.1/search/advanced?order=desc&sort=relevance&q=jsonp&site=stackoverflow';
var req = http.request(endpoint, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
// write data to request body
req.write('data\n');
req.write('data\n');
req.end();
答案 0 :(得分:0)
Stackoverflow服务器配置错误,因此即使您没有要求,它们也会返回gzip编码的正文。
看起来你必须在收到回复之后对其进行枪杀。