Api bing fordító

Hosszú ideje akartam foglalkozni a SOAP protokollt, lásd, hogyan kell dolgozni vele, hogyan kell használni, stb de annak hiányában a nagy mennyiségű szabad idő, mert a megszokott vonakodás törődni valami újat mindig nem tudott, hogy az írás néhány alkalmazást használó SOAP. Általában, amikor megértettem bizonyos API webes szolgáltatás, amely volt a választás a két protokoll - tiszta HTTP vagy a SOAP kaptam ki először, és valójában most rájöttem, hogy semmi :).

Kiderült, hogy dolgozzon ki egy kis SOAP kliens Delphi elemi és nagyságrenddel könnyebb, mint egy külön könyvtárat dolgozik HTTP (Synapse. WinInet, Indy, stb) együtt könyvtárakban, mint például MSXML NativeXML (kínál az XML) vagy SuperObject (a JSON).

Példaként elhatároztam, hogy írok egy kis kliens dolgozni Bing Translator API (Google fordító már - most úgy döntött, hogy mi volt nasochinyali Microsoft).

Először is, néhány bevezető szót az a tény, hogy az általa képviselt SOAP protokoll.

SOAP (az angol S végrehaj O bject A ccess P kiegészítő jegyzőkönyvét -. A Simple Object Access Protocol) - protokoll strukturált üzeneteket egy elosztott számítási környezetben. SOAP eredetileg főként (RPC) végrehajtására vonatkozó távoli eljárás hívás. Most a protokoll cseréjére önkényes üzeneteket XML formátumban, és nem csak az eljárás hívás.

Ugyanezen az oldalon Wiki lehet találni, és a hiányzó SOAP - növekedése adatmennyiség. De mi ma már nem olyan fontos, mi lenne most foglalkozik a munkát.

Megjegyzés: Ha nagyon fontos az adatmennyiség átvitele lehetséges, hogy a következő osztályozás az adatcsere a különböző formátumokban (kivéve Plain Text) és különböző protokollok (az egyik ilyen, hogy nekem most többé-kevésbé ismert):

  1. HTTP + SOAP - a legnagyobb mennyiségben;
  2. HTTP + XML - az átlagos mennyisége;
  3. HTTP + JSON - a legkisebb térfogat

Minden adattípusok, műveletek, módszerek nyilvánított üzeneteket a szerver a kliens és a hátsó található a szerver oldalon formájában WSDL-dokumentum. Minden, amit meg kell -, hogy a behozatali bármilyen módon a dokumentumot, és azt benyújtja formájában már ismert számunkra, osztályok és Delphi tárgyakat.

Mivel WSDL - egy szabványos nyelvet leíró web-szolgáltatásokat, akkor rendre Delphi biztosít kényelmes import az ilyen dokumentumok és mutassa be az előírt formában van szükségünk, azaz külön egységként Delphi.

Most folytassa közvetlenül a figyelmet például a Bing API segítségével SOAP.

Mielőtt futtatja a Delphi és fejlődni kezd a mini-fordító, létre kell hoznunk egy fiókot Bing és a fejlesztő oldal hozzáférési kulcsot (AppID) az API-nak. A regisztrációval megkapjuk és emlékeznünk AppID.

Most fut Delphi (Van olyan Delphi XE), és válassza a Fájl menü -> New -> Egyéb. Az új ablakban válasszuk WebServices -> WSDLImporter.

Api bing fordító

Az útvonal a WSDL-dokumentum Bing Translator API szerepel az első oldalon a dokumentumot, és így néz ki:

„Fed” gazdája, majd kattintson a „Tovább”:

Api bing fordító

Megkéri, hogy válasszon a SOAP verzió, amely azt fogja használni. Hagyjuk az alapértelmezett és kattintson a „Tovább” gombra:

Api bing fordító

Itt kérünk a mester mit WSDL lehetőség van importálni. Az elv, hogy az alapértelmezett beállítás vagyunk elég, így a nyugalmat kattintson a „Befejezés”, és a varázsló ad nekünk egy érthető egység nevezett soap.pas. Ebben a munkában a WSDLImporter végét, és folytassa a végrehajtását egy tolmácsot.

Készítsen egy általános alkalmazás (VCL Forms Application) és csatlakozzon a felhasználási újonnan létrehozott soap.pas modult.

Kilépés is képeznek TButton komponenseket, TListBox és THTTPRIO komponenst az oldalról (WebServices).

Most nyissa ki a dokumentációt SOAP Bing API, és próbálja végrehajtása számos különböző funkciókat. Először is visszatérő függvények vonalak, például használja a módszert Microsoft.Translator.Detect. Nézd meg azt a SOAP.pas modul:

Ok ilyen módszer számunkra sokkal egyszerűbb és könnyebb, mint, mondjuk, hogy egy csomó HTTP + XML - először hozzon létre az URL, majd végrehajtja a lekérdezést, és kap egy választ, majd feldolgozni az XML és az eredményt. De egy kérdés marad: hogyan is küld ugyanezt a kérést? Ez az oka annak, lefektettük az űrlap THTTPRIO komponenst. Továbbra is csak a beállítani az alábbiak szerint:

A WSDLLocation mező írni ugyanazt az URL, ami lehet, és ha importál a WSDL-dokumentum (lásd. Fent) és a Port és a szerviz területén válassza az egyetlen rendelkezésre álló érték. Meg kell nézni az alábbiak szerint:

Api bing fordító

És most a legérdekesebb -, ha megnézi a listán HTTPRIO alkatrész módszerek, akkor nem fogja megtalálni, mint mindig, ha foglalkoznak HTTP módszerek például POST, GET, stb Ezek a saját, és nem kell -. Van LanguageService felület, amelyen azt kapjuk, a szükséges adatokat nekünk.

Készítsen gombok onclick felvezető és írd be:

Az alkalmazás futtatásához kattintson a gombra, és megjelenik a következő üzenet:

A kérés érkezik, a válasz megérkezett. Anélkül történt az XML és JSON, és egyéb szokásos műveleteket, miközben dolgozik a HTTP. Ez egyszerűen nem igaz, és kényelmes. ). Összetett adattípusok olyan könnyű dolgozni leírások csupán a modulban. Például, akkor használja a módszert Microsoft.Translator.GetLanguageNames, amely visszaadja nekünk egy tömböt - nyelvek nevének a felhasználó nyelvén. Lásd a módszer leírását a soap.pas:

Az egyetlen adattípust, amely talán nem érti - ez ArrayOfString. Nézd meg azt a modulban:

Írása a felvezető a gombra. Például így:

Indítsa el a programot, kattintson a gombra, és nézze meg az eredményt a ListBox:

Api bing fordító

Ha LangNames tömb tartalmaz „érthetetlen” szerver vonalon, a hiba nem fordul elő, és a munkamódszer eredmények kevesebb mint 1 elem.

És végezetül az a rövid cikkben megpróbálunk lefordítani egy szöveget. Ehhez használjuk a módszert Microsoft.Translator.GetTranslations, amely visszaadja nekünk minden lehetséges fordítások a szövegben. Nézzük levelet kezelő a gomb:

A program eredményeként a következő lesz:

Api bing fordító

Itt talán minden. Úgy gondolom, hogy egy kis bölcsőt for Work Bing API-n keresztül SOAP Delphi ezt a bejegyzést baj. Poprbovat tud dolgozni az API tolmács a Microsoft.

Kapcsolódó cikkek