多语言Google Translate API正在退回(503)服务器不可用

我正在尝试使用谷歌翻译进行翻译,但它提供错误服务器不可用。 我的猜测是,当我尝试将相同的东西放在地址栏中时,我们会收到一个填写validation码。如果我们通过validation码而不是只下载一个txt文件。 我认为这可能是validation码页面的问题,而不是服务器不可用。

调用函数。

string result = TranslateGoogle("Life is great and one is spoiled when it goes on and on and on", "en", "hi"); Console.WriteLine(result); 

翻译谷歌function

 public string TranslateGoogle(string text, string fromCulture, string toCulture) { fromCulture = fromCulture.ToLower(); toCulture = toCulture.ToLower(); string[] tokens = fromCulture.Split('-'); if(tokens.Length > 1) fromCulture = tokens[0]; tokens = toCulture.Split('-'); if(tokens.Length > 1) toCulture = tokens[0]; string url = string.Format(@"http://translate.google.com/translate_a/t?client=j&text={0}&hl=en&sl={1}&tl={2}", System.Uri.EscapeDataString(text), fromCulture, toCulture); string html = null; try { WebClient web = new WebClient(); web.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0"); web.Headers.Add(HttpRequestHeader.AcceptCharset, "UTF-8"); web.Encoding = Encoding.UTF8; html = web.DownloadString(url); } catch(Exception ex) { MessageBox.Show(ex.Message); return null; } string result = Regex.Match(html, "trans\":(\".*?\"),\"", RegexOptions.IgnoreCase).Groups[1].Value; return result; } 

预期产出

 { "sentences": [ { "trans":"जीवन महान है और इस पर और पर और पर चला जाता है जब एक खराब है", "orig":"Life is great and one is spoiled when it goes on and on and on", "translit":"Jīvana mahāna hai aura isa para aura para aura para calā jātā hai jaba ēka kharāba hai", "src_translit":"", "backend":0 } ], "src":"en", "server_time":85 } 

这就是我得到的。

“远程服务器返回错误:(503)服务器不可用。”

我该怎么做才能获得该程序的预期输出。

对不起,这不是一个答案(但也许社区可以帮助,让这成为一个真正的答案),但我需要在这里发布,因为在评论我不能很好地格式化。

我试过你的例子,似乎谷歌认为你是在试图滥用他们的服务,这是客户发送的:

 GET http://translate.google.com/translate_a/t?client=j&text=Life%20is%20great%20and%20one%20is%20spoiled%20when%20it%20goes%20on%20and%20on%20and%20on&hl=en&sl=en&tl=hi HTTP/1.1 Accept-Charset: UTF-8 User-Agent: Mozilla/5.0 Host: translate.google.com Proxy-Connection: Keep-Alive 

Google会将此请求发送至http://ipv4.google.com/sorry/IndexRedirect?continue = http://translate.google.com/translate_a/t%3Fclient%3Dj%26text%3DLife%2520is%2520great%2520and%2520one %2520is%2520spoiled%2520when%2520it%2520goes%2520on%2520and%2520on%2520and%2520on%26hl%3Den%26sl%3Den%26TL%3Dhi&q = CGMSBFgz6X4YkI3frwUiGQDxp4NLo-2RV2k8i7UPzIRYKSuT5usFkUU

在这里,如果从浏览器导航它显示validation码,所以我尝试使用Web浏览器(Firefox)导航程序生成的URL。 这就是它所显示的: 谷歌Captcha

对意大利人抱歉,它说来自PC的exception流量。 一旦您正确地提示validation码,您的浏览器就会为下一个请求保存一个cookie(这样您就不会再次获取validation码),并且您将被重定向到已翻译的句子。

以下是下次导航时浏览器请求的示例:

 GET http://translate.google.com/translate_a/t?client=j&text=Life%20is%20great%20and%20one%20is%20spoiled%20when%20it%20goes%20on%20and%20on%20and%20on&hl=en&sl=en&tl=hi HTTP/1.1 Host: translate.google.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Cookie: NID=71=a__xJqNU4C1oQTkLrMCSL4CLdR_nelc5kbjcUwgvJUBILn2SOHrfUeIg-9vWfy6tRHVh9Z4yXT1dpwnnHIXf5i2NLlCuDn-joB1tpYo_9JM4_zQnaaYO7UCsFoFILogS8G4XTt1M8esMgUnG_JzoMWSG81Q-JfGk1_IQsb5gIHyHcKroJeNEUp4bnMkiOvZgj1Sk; SID=DQAAAP8AAADnhNjYLtZUYSPbm-V_62WNnlSj8pUKPRnUfLR-Fp18gYeyWsC93YgLn5yoy0L3FLPb2_yNM7ysBQPCnqJGCy6Or6i2WLHicMaVFr0_0LT4xM2KECq3F6Nczc6V7RO8G5VYnHNLXjZ4ZqVMRTfG3E-Ljrgq_0zg_bhi1DT2CeWoBgBFSVTh_cyMjjYdCRiPpyEFRAtUp_48EKmd62YzJHyPeD-JfXTvVlyacDavPzl4L5yf1KmJ37c-j_Px8dYVKHn5tE_jAKHcFjJ717mY85bjyyUasTKoPc_w9AhnVQXE-v-jBsT4rvbJ3khIqiddjagnQ6LpVCMrRwZ9OwU2uubG; HSID=AX4zDBkEvzB-ZdrnV; APISID=ZMLtLIl8PnW6C6X2/A20GPxC9NiRmY3t1T; _ga=GA1.3.1956353841.1435321193; PREF=ID=1111111111111111:FF=0:LD=it:TM=1436338644:LM=1437143045:V=1:S=me455Y_9_LyG2PFU; GOOGLE_ABUSE_EXEMPTION=ID=52cecb7a44e552cc:TM=1442301156:C=c:IP=88.51.233.126-:S=APGng0tXDRxFvrRNJHu-uk3IRqKVpJAIIQ Connection: keep-alive 

作为证据,如果我将此行添加到C#代码:

 web.Headers.Add(HttpRequestHeader.Cookie, "NID=71=a__xJqNU4C1oQTkLrMCSL4CLdR_nelc5kbjcUwgvJUBILn2SOHrfUeIg-9vWfy6tRHVh9Z4yXT1dpwnnHIXf5i2NLlCuDn-joB1tpYo_9JM4_zQnaaYO7UCsFoFILogS8G4XTt1M8esMgUnG_JzoMWSG81Q-JfGk1_IQsb5gIHyHcKroJeNEUp4bnMkiOvZgj1Sk; SID=DQAAAP8AAADnhNjYLtZUYSPbm-V_62WNnlSj8pUKPRnUfLR-Fp18gYeyWsC93YgLn5yoy0L3FLPb2_yNM7ysBQPCnqJGCy6Or6i2WLHicMaVFr0_0LT4xM2KECq3F6Nczc6V7RO8G5VYnHNLXjZ4ZqVMRTfG3E-Ljrgq_0zg_bhi1DT2CeWoBgBFSVTh_cyMjjYdCRiPpyEFRAtUp_48EKmd62YzJHyPeD-JfXTvVlyacDavPzl4L5yf1KmJ37c-j_Px8dYVKHn5tE_jAKHcFjJ717mY85bjyyUasTKoPc_w9AhnVQXE-v-jBsT4rvbJ3khIqiddjagnQ6LpVCMrRwZ9OwU2uubG; HSID=AX4zDBkEvzB-ZdrnV; APISID=ZMLtLIl8PnW6C6X2/A20GPxC9NiRmY3t1T; _ga=GA1.3.1956353841.1435321193; PREF=ID=1111111111111111:FF=0:LD=it:TM=1436338644:LM=1437143045:V=1:S=me455Y_9_LyG2PFU; GOOGLE_ABUSE_EXEMPTION=ID=52cecb7a44e552cc:TM=1442301156:C=c:IP=88.51.233.126-:S=APGng0tXDRxFvrRNJHu-uk3IRqKVpJAIIQ"); //This is the cookie of the request of Firefox 

谷歌发送翻译的句子"जीवन महान है और इस पर और पर और पर चला जाता है जब एक खराब है"

这是一个似乎有用的项目,它基本上在url中添加了不同的参数。

GoogleTranslator的工作原理是直接调用其在线翻译表单调用的Google翻译API并解析结果。

我一直在尝试使用Google TTS,但它不再起作用了。 谷歌翻译v2不再支持TTS (见这里)

由于您使用的是C#,因此最好在System.Speech.Synthesis中使用speechsynthesis

  public static void TextToSpeech (string utterance) { SpeechSynthesizer speaker = new SpeechSynthesizer(); speaker.Speak(utterance); return; } 

希望这能回答你的一些问题。 目前还没有针对validation码的解决方法。