С# - WebClient - удаленный сервер отправляет ошибку 503

Я написал небольшую программу для форм Windows, которая отправляет строку в Google Translate. Целевая платформа — .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)

Я не знаю, что мне делать. Я пытался деактивировать антивирусное программное обеспечение и брандмауэр. Также я попытался скопировать строку URL-адреса в браузер с некоторыми допустимыми входными данными (http://www.google.com/translate_t?hl=en&ie=UTF8&text=test&langpair=de|en)

Что-нибудь еще, что я могу попробовать? Спасибо за ваше время и ваши ответы! С уважением, Доминик

РЕДАКТИРОВАТЬ: Проблема решена. Сначала я изменил URL-адрес на https://translate.google.com/?hl=ru&;ie=UTF8&text={0}&langpair={1}, а затем я получил проблемы с проверкой кода. Я решил эту проблему, добавив "&client=" в конце URL-адреса: translate.google.com/?hl=ru&;ie=UTF8&text={0}&langpair={1}&client=


person Schlodi    schedule 15.06.2016    source источник
comment
http не принимается Google. Измените его на https: string url = String.Format("https://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair);   -  person Tuyen Pham    schedule 15.06.2016
comment
@sakura Я не верю, что это проблема, поскольку приведенный выше код отлично работает в LinqPad на моем компьютере.. Или, может быть, это так, потому что я, вероятно, получу перенаправление 301 на https. Может быть, это может быть проблемой   -  person Jordan Coulam    schedule 15.06.2016
comment
ваш код не лучший путь. вы можете использовать этот код, который лучше. Пример использования: https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=de&dt=t&q=my+name+is+Sakura   -  person Tuyen Pham    schedule 15.06.2016
comment
Спасибо за помощь и спасибо за код. На данный момент все работает нормально с ответом Джордана Кулама. Но когда у меня возникнут новые проблемы, я обязательно воспользуюсь вашим кодом. Всем спасибо!   -  person Schlodi    schedule 15.06.2016


Ответы (2)


Попытка изменить ваш URL-адрес на этот https://translate.google.com/?hl=en&;ie=UTF8&text={0}&langpair={1} Это предотвратит 2 переадресации. 1 на этот измененный URL и перенаправление секунд на https://

person Jordan Coulam    schedule 15.06.2016
comment
Спасибо, чувак, это помогло мне. После этого изменения я получил ошибку с капчей, но я исправил ее, добавив &client= в конце URL-адреса: translate.google.com/?hl=ru&;ie=UTF8&text={0}&langpair={1}&client= - person Schlodi; 15.06.2016

Проверяли ли вы настройки VPN-подключения или прокси-сервера на компьютере вашего клиента?

person Fka    schedule 15.06.2016
comment
Да, я сделал, но это была не проблема. В любом случае, спасибо! - person Schlodi; 15.06.2016