Munka api Yandex fordító - programozás C, C # és java

Megtanuljuk, hogyan kell dolgozni az API C # programozási nyelv. Ebben a leírásban, akkor írj egy programot Visual Studio a Windows Forms, amely lefordítja a szöveget oroszról angolra és fordítva Web API-kéréssel Yandex Translate. Azt is letölthető a forráskód által kidolgozott programot.

Mi az API?

API (rövidítése Application Programming Interface) - egy olyan alkalmazás programozási felület. Internet szolgáltatások, könyvtárak, operációs rendszer, stb .. A fejlesztők felületek kölcsönhatásban áll a készlet kész osztályok, módszereket és adatokat. Ennek eredményeként, fel tudjuk használni a funkciókat más internetes szolgáltatásokat a saját alkalmazásokat.

Miért Yandex mint a Google?

Yandex fordító egy ingyenes API, valamint a Google Translate - ez fizetni: $ 20 minden millió átadott karakter.

Munka api Yandex fordító - programozás C, C # és java

Azt mondják, hogy van egy próbaidőszak. Tehát, ha érdekel, akkor lehetősége van arra, hogy megpróbálja.

Előállítás API-kulcs

Az első és legfontosabb, meg kell, hogy a legfontosabb. amely együtt fog működni az API Yandex Translate. Más kulcsfontosságú szolgáltatások nevezhetjük egy hozzáférési tokent.

Munka api Yandex fordító - programozás C, C # és java

Ezután a kulcsot sikeresen létrehozva:

Munka api Yandex fordító - programozás C, C # és java

Másolás, és mentse magát, akkor szükségünk lesz. Ne árulja el senkinek a kulcsot. Ez lesz rossz, ha valaki fogja használni. Ha mégis ez történt - lehet lezárni, akkor kap egy újat.

Egy ingyenes kulcsot, amelyet az imént kapott, vannak korlátozások Yandex (az idézet a Felhasználói megállapodás) „az összeg fordítandó szöveg -, amelynek mértéke legfeljebb 1 millió karakter naponta, de nem több, mint 10 millió karakter egy hónapban.” Ha több kell -, hogy létezik erre útdíj tarifák API.

Tervezése az interfész

Az elején, hadd egyetért a fordítás irányát: a program elvégzi a fordítást oroszról angolra és fordítva.

Hozzon létre egy Visual Studio új Windows Forms projekt a C # programozási nyelv.

Mint a klasszikus Google fordító, amely ismerős mindannyiunk, szükségünk van: két szövegdobozok (TextBox) és egy gombra () „átutalás”. Ezen kívül helyezze az ellenőrzések formájában csoportpanelen és akkor adjunk hozzá két RadioButton kapcsoló - így tudjuk biztosítani, hogy összehangolt munkája (kiválasztva mindig marad az egyetlen). Itt mit kell rendelkezniük:

Munka api Yandex fordító - programozás C, C # és java

betűméret elindultunk egyenlő 11 pont. A TextBox vezérlő paraméter többsoros tett, hogy igaz legyen - ez elvégzi a beviteli mezőbe a sortörés.

Program létrehozása interfész API befejeződött.

írni a kódot

Hozzon létre egy osztályt, amely ezt a munkát a Yandex Translate API segítségével webes kérések. Név az osztály YandexTranslator.

Az osztály tartalmaz egy módszert nyilvános húr Fordítás (string s, string lang). A módszer figyelembe kachetve argementov: s vonal - a forrás szöveg fordításra lang húr - az irányt a fordítás (pl ru-en - az orosz-angol). Metódus visszaad egy karakterláncot a lefordított szöveget.

Class Code YandexTranslator:

Írása programot, hogy működjön együtt az API Yandex tolmács Windows Forms és a C # nyelv befejeződött!

Töltse le a forráskód a program, vagy menjen a repository GitHubról:

A szerkezet a web-lekérdezés API

Kérelmet az API fordító számos olyan kötelező paraméter - jelentése: key = text =<переводимый текст> lang =<направление перевода>. Opcionális paraméterek, mint a méret és átutalási lehetőség, nem használtuk.

Kérdés API Yandex visszaadja a választ JSON szerkezetét.

Részletes információ a API-kérések Yandex fordító, paramétereik és a szerver válaszok a hivatalos dokumentációt.

JSON deserialization

JSON lehet deserialize (parse), például osztályok segítségével a könyvtári Newtonsoft.Json C # (a példában program ezt a papírt és ez tette). Könyvtár, akkor töltse le és csatlakozzon a projekthez a csomagkezelő rendszer NuGet Visual Studio. Erre a célra, a megoldás a jobb gombbal, és válassza ki a „Csomagok kezelése NuGet megoldásokat ...”:

Munka api Yandex fordító - programozás C, C # és java

Ezután a keresőmezőben adja meg a könyvtár nevét „Newtonsoft.Json”, és a keresési eredmény eléréséhez Json.NET komponenst.

Munka api Yandex fordító - programozás C, C # és java

Szintén a kódot kell a segítségével segítségével irányelv csatlakoztassa a megfelelő névteret.

Szia, talán tud segíteni, vagy mondd meg, merre kell ásni. Amikor fordítására orosz angol 400 hibát az Yandex szerver.
Hogyan tudom kijavítani?
Java-használat URLEncoder.encode (szöveg, "UTF-8"), de a C #?

Lehet, hogy a szöveg érvénytelen karaktereket tartalmaz. Vagy Java minden rendben van, a probléma a C #? Nagy szöveg mérete lefordítani?

Próbálom lefordítani „Hello”, az a tény, hogy a kód nem rendelkezik ahhoz, hogy a kódolás amikor át az orosz karakterek használata nem támogatott.
Ezért szükséges, hogy adjunk Uncoder.
Ez ugyanaz a dolog azt mondták, a támogatást a Yandex

Ha módosítani szeretné a kódolás, próbálja meg használni a kifejezést:

Ahol s - a megfelelő sort.

Ehelyett Unicode is ki lehet választani: ASCII, UTF32, UTF7, UTF8 és az alapértelmezett.

és miért, a másolt szöveg tetszőleges hosszúságú és fordítási hiba 400 (Nem kezelt kivétel „típusú System.Net.WebException” történt System.dll

Kiegészítő információk: Távoli szerver hibát (400), hogy érvénytelen kérelem).

A legvalószínűbb ennek oka az a tény, hogy a fordítandó szöveg érvénytelen karaktereket tartalmaz.

Köszönöm kiváló példája.
Úgy látszik, ez az egyetlen teljesen működő megoldást feldolgozására JSON C #, ami lehet alapul venni a tanulmány.

Kapcsolódó cikkek