Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > HttpWebRequest google переводчик


Автор: Most 3.11.2010, 01:31
Здравствуйте) Вот собственно делал программу - переводчик. Которая хранит данные в xml файле. В голову пришла идея вставить в программу возможность програмно подключаться к гугл-переводчику и получать перевод слова. В интернете нашел интерестное решение
В принципе в ниже приведенной функции мне понятно почти все кроме того где и как мы узнали строку requestUri???Помогите разобраться.
Код

 // so we don't need to send a format? key
                       string requestUri = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + _en_Word + "&langpair=" + "en" + "%7C"+"ru";


вот функция, реализующая подключение и внесение переведенного слова с английского на русский в поле textbox:
Код

private void set_conection(TextBox output)
       {

           // make sure that the passed string is not empty or null
           if (!String.IsNullOrEmpty(_en_Word))
           {
               // per Google's terms of use, we can only translate
               // a string of up to 5000 characters long
               if (_en_Word.Length <= 5000)
               {
                   const int bufSizeMax = 65536;
                   const int bufSizeMin = 8192;

                   try
                   {
                       // by default format? is text.  
                       // so we don't need to send a format? key
                       string requestUri = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + _en_Word + "&langpair=" + "en" + "%7C"+"ru";

                       // execute the request and get the response stream
                       HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
                       HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                       Stream responseStream = response.GetResponseStream();

                       // get the length of the content returned by the request
                       int length = (int)response.ContentLength;
                       int bufSize = bufSizeMin;

                       if (length > bufSize)
                           bufSize = length > bufSizeMax ? bufSizeMax : length;

                       // allocate buffer and StringBuilder for reading response
                       byte[] buf = new byte[bufSize];
                       StringBuilder sb = new StringBuilder(bufSize);

                       // read the whole response
                       while ((length = responseStream.Read(buf, 0, buf.Length)) != 0)
                       {
                           sb.Append(Encoding.UTF8.GetString(buf, 0, length));
                       }

                       // the format of the response is like this
                       // {"responseData": {"translatedText":"¿Cómo estás?"},             "responseDetails": null, "responseStatus": 200}
                       // so now let's clean up the response by manipulating the string
                       string translatedText = sb.Remove(0, 36).ToString();
                       translatedText = translatedText.Substring(0,
                       translatedText.IndexOf("\"},"));

                       output.Text= translatedText;
                   }
                   catch
                   {
                       output.Text= "Cannot get the translation.  Please try again later.";
                   }
               }
               else
               {
                   output.Text= "String to translate must be less than 5000 characters long.";
               }
           }
           else
           {
               output.Text= "failed";
           }
       }



Автор: diadiavova 3.11.2010, 08:49
http://code.google.com/intl/ru/apis/language/translate/v1/using_rest_translate.html#json_snippets_flash

Автор: Most 3.11.2010, 09:38
спс буду разбираться...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)