使用请求模块请求JSON(编码问题) - Node.js

时间:2015-06-05 15:43:23

标签: json node.js

我试图从与我不同的服务器请求Json文件,但我无法设置正确的编码。 我尝试使用HTTP模块但失败了。 现在我尝试使用'请求'模块。 我得到的反应被编码为我不知道是什么。也许utf 16并且根本不可读。 注意:json中有一些希伯来语字符。 我添加了以下内容以尝试修复它但也失败了:

 headers: {'Content-Type': 'application/json; charset=utf-8'}

我的代码:

var http = require('http');
var request = require('request');
var express = require('express');
var app = express();
var url = 'http://www.oref.org.il/WarningMessages/alerts.json?v=1';
app.listen(process.env.PORT || 8080);

app.get('/', function(req,res){
    res.send("Red color");
});
// get Alerts from web-service
app.get('/getAlerts', function(req,res){


request({
    url: url,
    json: true,
   headers: {'Content-Type': 'application/json; charset=utf-8'}
}, function (error, response, body) {

    if (!error && response.statusCode === 200) {
        console.log(response.headers) // Print the json response

      res.set({
        'content-type': 'application/json'
    }).send(body);
    }
  })
});

1 个答案:

答案 0 :(得分:0)

该API会返回UTF-16-LE中编码的JSON响应,因此您必须告诉request使用该编码。

但是,由于您正在尝试查询Pikud Haoref的警报API,请在npm上查看pikud-haoref-api以便为您完成繁重的工作:

https://www.npmjs.com/package/pikud-haoref-api