2016-04-02 3 views
3

Я хочу использовать google translate api, поэтому я создал этот модуль node.js.node.js запрос кодирования (google translate)

module.exports = function(sourceText,sourceLang,targetLang,callback) { 
var qst = qs.stringify({ 
    client : 'gtx', 
    sl : sourceLang, 
    tl : targetLang, 
    dt : 't', 
    q : sourceText 
}); 
var options = { 
    uri: 'http://translate.googleapis.com/translate_a/single?'+qst, 
}; 
request.get(options).on('response',function(response){ 
    response.on('data',function(data){ 
     console.log(data.toString('utf-8')); 
    }); 
});.. 

Я хочу использовать в основном переводить японский на корейский, так что я проверял, но я не могу получить результат я хотел. Я проверил URI и выполнил в браузере, он сработал!

Например: sorceLang = Ja, targetLang = ко, sourceText = の の の, я получил URI

http://translate.googleapis.com/translate_a/single?client=gtx&sl=ja&tl=ko&dt=t&q=%E3%81%AE%E3%81%AE%E3%81%AE

Результат в браузере: [[["의의","ののの",,,0]],,"ja"]

Но, node.js return result: [[["縺ョ縺ョ縺ョ","縺ョ縺ョ縺ョ",,,0]],,"ja"]

Я думаю, что это проблема в запросе, потому что результат не переводится.

Пожалуйста, дайте мне некоторое решение. Спасибо.

+0

Вы попробовали 'request.get (параметры, функция (err, res, body) {console.log (body)})'? – mscdex

+0

Да, я попробовал. Но результат такой же.こ ん に ち わ тело: [[["縺 薙 s 縺 ォ 縺. SaaS 는", "縺 薙 s 縺 ォ 縺. 繧" ,,, 0]] ,, @mscdex – yongsup

ответ

2

Я понял!

Результат браузера является правильным. Итак, я поставил слушателя «User-Agent». Вот мой источник

module.exports = function(sourceText,sourceLang,targetLang,callback){ 
var qst = qs.stringify({ 
    client : 'gtx', 
    sl : sourceLang, 
    tl : targetLang, 
    dt : 't', 
    q : sourceText 
}); 
var options = { 
    uri: 'http://translate.googleapis.com/translate_a/single?'+qst, 
    headers : { 
     'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36' 
    } 
}; 
request.get(options).on('response',function(response){ 
    response.on('data',function(data){ 
     console.log(data); 
    }); 
});} 

Консоль результата

[[["안녕하세요","こんにちわ",,,0]],,"ja"] 

Спасибо!

Смежные вопросы