2015-06-05 119 views
0

我試圖從一個服務器請求一個JSON文件不同於我的,但我不能設置正確的編碼。 我嘗試使用HTTP模塊並失敗。 現在即時嘗試使用'請求'模塊來做到這一點。 我得到的迴應是編碼,我不知道什麼。也許utf 16並且根本不可讀。 注意:json裏面有一些希伯來字符。 我增加了以下嘗試,並解決它,但也失敗了:請求使用請求模塊的JSON(編碼問題) - Node.js

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); 
    } 
    }) 
}); 
+0

你需要的bodyparser模塊? – Treesrule14

+0

我不這麼認爲 – Vandervidi

回答

0

該API返回UTF-16-LE編碼的JSON響應,所以你必須要告訴request到改爲使用該編碼。

但是,因爲你想查詢Pikud Haoref的警報API,請pikud-haoref-api上NPM做繁重的你:

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