2016-04-02 11 views
3

Ich möchte Google Translate API verwenden, also habe ich dieses node.js Modul gemacht.node.js Anfrage Codierung (Google Translate)

Ich möchte hauptsächlich Japanisch übersetzen, um Koreanisch, also habe ich getestet, aber ich kann nicht das Ergebnis, das ich wollte. Ich habe URI überprüft und im Browser ausgeführt, es hat funktioniert!

Zum Beispiel: sorceLang = ja, targetLang = ko, sourceText = の の の, bekam ich 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

Ergebnis auf Browser: [[["의의","ののの",,,0]],,"ja"]

Aber, node.js gibt das Ergebnis zurück: [[["縺ョ縺ョ縺ョ","縺ョ縺ョ縺ョ",,,0]],,"ja"]

Ich denke, scheint ein Problem in der Anfrage zu sein, weil das Ergebnis nicht übersetzt wird.

Bitte geben Sie mir eine Lösung. Vielen Dank.

+0

Haben Sie 'request.get (Optionen, Funktion (err, res, body)) {console.log (body)})'? – mscdex

+0

Ja, ich habe es versucht. Aber das Ergebnis ist dasselbe.わ ん に ち わ Körper: [[["縺 薙 s 縺 ォ 縺. SaaS 는", "縺 薙 s 縺 ォ 縺. 繧" ,, 0]] ,, @mscdex – yongsup

Antwort

2

Ich habe es!

Browser-Ergebnis ist richtig. Also setze ich 'User-Agent'. Hier ist meine Quelle

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

Console Ergebnis

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

ist Vielen Dank!