C# - WebClient - 远程服务器发送 503 错误
C# - WebClient - Remoteserver send an 503 error
我写了一个 windows 表单程序,它发送一个字符串给 google 翻译。目标框架是.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。 "The remote server returned an error: (503) Server Unavailable"。
这是完整的错误:
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)
还有什么我可以尝试的吗?
感谢您的宝贵时间和回答!
最好的祝福,
多米尼克
编辑:
问题解决了。首先我将 url 更改为 https://translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1} 然后我收到验证码问题。我通过在 url 末尾添加“&client=”解决了这个问题:translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1}&client=
您是否检查过客户端计算机上的 VPN 连接或代理设置?
尝试将您的 url 更改为此
https://translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1}
这将防止 2 次重定向。 1 到这改变了 url 和秒重定向到 https://
我写了一个 windows 表单程序,它发送一个字符串给 google 翻译。目标框架是.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。 "The remote server returned an error: (503) Server Unavailable"。 这是完整的错误:
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)
还有什么我可以尝试的吗? 感谢您的宝贵时间和回答! 最好的祝福, 多米尼克
编辑: 问题解决了。首先我将 url 更改为 https://translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1} 然后我收到验证码问题。我通过在 url 末尾添加“&client=”解决了这个问题:translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1}&client=
您是否检查过客户端计算机上的 VPN 连接或代理设置?
尝试将您的 url 更改为此
https://translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1}
这将防止 2 次重定向。 1 到这改变了 url 和秒重定向到 https://