我想征求意见。 我有一种方法可以向translate.google发送要翻译的文本字符串。该方法通过BackgroundWorker调用。问题是,在某些计算机上它可以正常工作,但在某些计算机上,我失败了DownloadData。异常仅报告未知错误。对不起我的英语。谢谢你的任何建议。
private string translateCleanString(string cleanText)
{
UnicodeEncoding enc = new UnicodeEncoding();
string url = string.Format("http://www.google.com/translate_t?text={0}&langpair={1}", cleanText, "sk|cs");
byte[] data = null;
using (WebClient client = new WebClient())
{
client.Encoding = UTF8Encoding.Default;
client.Headers["User-Agent"] = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9";
client.Headers["Accept-Language"] = "en-us,en;q=0.5";
client.Headers["Accept-Charset"] = "ISO-8859-1,utf-8;q=0.7,*;q=0.7";
try
{
data = client.DownloadData(url); //Fail, row 300
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
return FiltracePrelozenehoTextuOdBordelu(Encoding.GetEncoding(Regex.Match(client.ResponseHeaders["Content-Type"], "(?<=charset=)[\\w-]+").Value).GetString(data));
}
}
编辑:例外
e.StackTrace
e.InnerException
e.Message
WebException e
答案 0 :(得分:0)
尝试抓住WebException
,看看它是否提供了更多详细信息。
try
{
data = client.DownloadData(url);
}
catch(WebException e)
{
MessageBox.Show(e.Status.ToString());
}