我写了一个小窗口表单程序,发送一个字符串谷歌翻译。目标框架是.Net 4.5.2
public string TranslateText(string input, string languagePair)
{
try
{
string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair);
WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
string result = webClient.DownloadString(url);
result = result.Substring(result.IndexOf("<span title=\"") + "<span title=\"".Length);
result = result.Substring(result.IndexOf(">") + 1);
result = result.Substring(0, result.IndexOf("</span>"));
return result.Trim();
}
catch (WebException wex)
{
var err = "";
using (var sr = new StreamReader(wex.Response.GetResponseStream()))
err= sr.ReadToEnd();
saveLog(err);
return "FEHLER";
}
}
所以我的问题是,在我的机器上,代码工作正常。但是在我的客户的计算机上,始终存在System.Net.WebException。 &#34;远程服务器返回错误:(503)服务器不可用&#34;。 这是完整的错误:
System.Net.WebException: The remote server returner an error: (503) Server Unavailable.
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at WindowsFormsApplication1.Form1.TranslateText(String input, String languagePair)
我不知道,我该怎么做。我试图停用反病毒软件和防火墙。此外,我尝试将url字符串复制到浏览器,并使用一些有效的输入(http://www.google.com/translate_t?hl=en&ie=UTF8&text=test&langpair=de|en)
还有什么可以尝试的吗? 感谢您的时间和答案! 最好的祝福, 多米尼克
编辑: 问题解决了。首先,我将网址更改为https://translate.google.com/?hl=en&;ie=UTF8&text= {0}&amp; langpair = {1},然后我收到了验证码问题。我通过添加&#34;&amp; client =&#34;解决了这个问题。在网址末尾:translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1}&client=
答案 0 :(得分:1)
尝试将您的网址更改为此
https://translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1}
这将阻止2次重定向。 1到此更改的网址和秒重定向到https://
答案 1 :(得分:0)
您是否检查过客户端计算机上的VPN连接或代理设置?