Ошибка перевода Google - PullRequest
       7

Ошибка перевода Google

2 голосов
/ 13 октября 2011

Я столкнулся с исключением при использовании API перевода Google V2. Текст исключения: «Удаленный сервер возвратил ошибку: (403) Запрещено». Исключение происходит при вызове функции req.GetResponse (). Я использую следующий код. Пожалуйста, укажите, если какой-либо правильный код доступен. Спасибо

public static string Translate()
    {
         String textToTranslate = "Common";
         String fromLanguage = "en"; // english
         String toLanguage = "ur"; // spanish
         String apiKey = /*My API Key*/; 

        // create the url for making web request
         String apiUrl = "https://www.googleapis.com/language/translate/v2?key={0}&source={1}&target={2}&q={3}";
         String url = String.Format(apiUrl, apiKey, fromLanguage, toLanguage, textToTranslate);    
         string text = string.Empty;

        try
        {
            // create the web request
            WebRequest req = HttpWebRequest.Create(url);

            // set the request method
            req.Method = "GET";

            // get the response
            using (WebResponse res = req.GetResponse())
            {
                // read response stream
                // you must specify the encoding as UTF8 
                // because google returns the response in UTF8 format
                using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
                {
                    // read text from response stream
                    text = sr.ReadToEnd();
                }
            }
        }
        catch (Exception e)
        {
            throw; // throw the exception as is/
        }

        // return text to callee
        return text;
    }

1 Ответ

2 голосов
/ 13 октября 2011

Вы либо столкнулись с некоторым установленным Google пределом использования API (см. http://code.google.com/apis/language/translate/v2/getting_started.html)

ИЛИ

Проблема заключается в языке (ur = урду?), Который вы используете.... вы должны проверить, действительно ли эта комбинация доступна через соответствующий API. Если вы действительно хотите использовать испанский язык, как ваш комментарий предполагает, я подозреваю, что это будет es.

Еще один момент:
Вы не спасаетесьпараметры вашего URL (особенно текст для перевода), которые, в свою очередь, могут привести к некоторым проблемам в будущем ...

...