Lucrul cu traducătorul api yandex - programarea în c, c # și java

Aflați cum să lucrați cu API în limbajul de programare C #. În această lecție vom scrie un program în Visual Studio pe Windows Forms, care va traduce textul din limba rusă în engleză și invers, cu cereri web la API-ul Yandex Translator. De asemenea, puteți descărca codul sursă dezvoltat de program.







Ce este un API?

API (scurt pentru limba engleză Application Programming Interface) este o interfață de programare a aplicațiilor. Serviciile de Internet, bibliotecile, sistemul de operare, etc. oferă dezvoltatorilor interfețe pentru a interacționa cu seturile de clase, metode și date gata făcute. Ca rezultat, putem folosi funcțiile altor servicii Internet în aplicațiile noastre.

De ce Yandex, nu Google?

Yandex Translator oferă un API gratuit, iar în Google Translate - este plătit: 20 de euro pentru fiecare milion de caractere traduse.

Lucrul cu traducătorul api yandex - programarea în c, c # și java

Merită să spunem că există o perioadă demo. Deci, dacă sunteți interesat, atunci există o oportunitate de a încerca.

Obținerea cheii API

Mai întâi de toate, trebuie să luăm cheia. care va funcționa cu API-ul Yandex Translator. În alte servicii, cheia poate fi numită un simbol de acces.

Lucrul cu traducătorul api yandex - programarea în c, c # și java

Apoi cheia va fi creată cu succes:

Lucrul cu traducătorul api yandex - programarea în c, c # și java

Copiați-l și păstrați-l, apoi avem nevoie de ea. Nu spuneți cheia nimănui. Va fi rău dacă cineva o folosește. Dacă a făcut-o, o puteți bloca și apoi puteți obține una nouă.

Pe cheia liberă pe care tocmai am primit-o, există restricții în Yandex (denumite în continuare în Acordul de utilizare) "cu privire la volumul textului tradus - până la 1 000 000 de caractere pe zi, dar nu mai mult de 10 000 000 simboluri pe lună". Dacă aveți nevoie de mai mult - atunci pentru aceasta există rate plătite pentru API.

Proiectarea interfeței programului

La început, să acceptăm direcția traducerii: programul va efectua traducerea din limba rusă în engleză și invers.

Creați un nou proiect Windows Forms în Visual Studio în limba de programare C #.

Ca și în interfața clasică a unui interpret familiar pentru fiecare dintre noi, avem nevoie de: două casete de text (TextBox) și un buton (Button) "Traduceți". În plus, vom pune un control GroupBox pe formular și vom adăuga două RadioButtons - pentru a ne asigura munca lor consecventă (există întotdeauna doar una selectată). Iată ce ar trebui să se întâmple:







Lucrul cu traducătorul api yandex - programarea în c, c # și java

Am setat dimensiunea fontului la 11 puncte. În comenzile TextBox, parametrul Multiline este setat la true - aceasta vă va permite să efectuați o ruptură de linie în câmpul text.

Crearea API pentru munca API este finalizată.

Codul de scriere

Să creăm o clasă care va funcționa cu Traducătorul API Yandex prin solicitări web. Noi numim clasa YandexTranslator.

Clasa conține singura metodă Public string Translation (șir s, string lang). Metoda acceptă argumentele ca șir: s este textul sursă pentru traducere, linia lang este direcția traducerii (de exemplu, ru-en este ruso-engleză). Returnează un șir de metode cu textul tradus.

Codul clasei YandexTranslator:

Scrierea unui program pentru a lucra cu API-ul Yandex Translator pe Windows Forms și C # este finalizat!

Descărcați codul sursă al programului sau mergeți la magazia de pe GitHub:

Structura solicitării API-ului Web

Cererea API a interpretului conține un număr de parametri necesari: key = text =<переводимый текст> lang =<направление перевода>. Nu am utilizat parametri opționali, cum ar fi formatul și opțiunile de traducere.

Cererea API Yandex returnează răspunsul ca structură JSON.

Informațiile complete cu privire la solicitările către API-ul Yandex Translator, parametrii și raspunsurile lor la server se află în documentația oficială.

Deseralizarea JSON

JSON poate fi deserializat (analizat), de exemplu, utilizând clase din biblioteca Newtonsoft.Json în C # (în programul de probă din acest articol și făcut). Puteți descărca și conecta biblioteca la proiect utilizând sistemul de management al pachetelor NuGet din Visual Studio. Pentru a face acest lucru, pe soluție, faceți clic dreapta și selectați "Gestionați pachetele NuGet pentru soluție ...":

Lucrul cu traducătorul api yandex - programarea în c, c # și java

Apoi introduceți numele bibliotecii "Newtonsoft.Json" în bara de căutare și instalați componenta Json.NET din rezultatele căutării.

Lucrul cu traducătorul api yandex - programarea în c, c # și java

De asemenea, în cod, trebuie să utilizați directiva de utilizare pentru a conecta spațiul de nume corespunzător.

Bună, poate vă veți ajuta sau spuneți-mi ce cale să săpați. În cazurile în care traduc în limba rusă în engleză apare eroarea 400 de la serverul Yandex.
Cum pot remedia problema?
Pe Java folosim URLEncoder.encode (text, "UTF-8"), dar pe C #?

Poate că textul conține caractere nevalide. Sau este totul normal în Java, probleme cu C #? Traduceți text mare?

Încerc să traduc "Bună ziua", este faptul că în codul dvs. nu există codare, atunci când traduceți caracterele rusești, acestea nu sunt acceptate.
Prin urmare, trebuie să adăugați Uncoder.
Același lucru a fost răspunsat de sprijinul Yandex

Pentru a modifica codificarea, încercați să utilizați expresia:

Unde s este șirul corect.

În loc de Unicode, puteți alege și: ASCII, UTF32, UTF7, UTF8 și Default.

și de ce cu textul copiat de orice lungime și traducerea lui există o eroare 400 (O excepție nefolosită de tip "System.Net.WebException" a apărut în System.dll

Informații suplimentare: Serverul la distanță a trimis o eroare: (400) Cerere nevalidă.)

Cel mai probabil acest lucru se datorează faptului că textul tradus conține caractere nevalide.

Vă mulțumim pentru un bun exemplu.
Aparent, aceasta este singura soluție pe deplin funcțională cu procesarea JSON în C #, care poate fi luată ca bază pentru studiu.







Articole similare

Trimiteți-le prietenilor: