C# - WebClient - 远程服务器发送 503 错误

标签 c# webclient google-translate system.net.webexception

我写了一个小的 Windows 窗体程序,它发送一个字符串到谷歌翻译。目标框架是.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。 “远程服务器返回错误:(503) 服务器不可用”。 这是完整的错误:

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)

我不知道,我该怎么办。我试过停用防病毒软件和防火墙。我还尝试使用一些有效输入 ( http://www.google.com/translate_t?hl=en&ie=UTF8&text=test&langpair=de|en ) 将 url 字符串复制到浏览器

还有什么我可以尝试的吗? 感谢您的宝贵时间和回答! 此致, 多米尼克

编辑: 问题解决了。首先,我将 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=

最佳答案

尝试将您的网址更改为此 https://translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1} 这将防止 2 次重定向。 1 到这个更改后的 url 和秒重定向到 https://

关于C# - WebClient - 远程服务器发送 503 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37831372/

相关文章:

c# - 无法从网页下载源

python - 如何使用 python 传递字符串 + web url 并接收响应

c# - 压缩完成后立即删除图像文件。如何?

c# - 如何检查访问站点的用户是在根页面还是其他页面?

c# - 向 Web API 中的所有响应添加自定义 header

iphone - Xcode 中的 Google Translate API : NSMutableURLRequest returning NULL, 不是预期结果

javascript - 如何将 google api 免费翻译为以 json 格式返回?

c# - 任务输入不匹配

c# - 在标签中获取 http 文件大小、下载位置和 URL

C# FTP 与 WebClient 错误 : The remote server returned an error: (534) 534 Policy requires SSL