2016-04-02 7 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 = KO、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戻り値[[["縺ョ縺ョ縺ョ","縺ョ縺ョ縺ョ",,,0]],,"ja"]

結果が翻訳されていないので、リクエストに問題があるようです。

私に解決策を教えてください。ありがとうございました。

+0

あなたは 'request.get(options、function(err、res、body){console.log(body)})'を試しましたか? – mscdex

+0

はい、試しました。しかし結果は同じです。こんにちは体:SaaSは "、"それは "、,,]]、@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"] 

ありがとうございました!