Vytvořte klienta pro webové služby v Javě

Nové formáty přenosu informací nás nutí změnit způsob, jakým přemýšlíme o našich aplikacích, každý den jsme více závislí na internetu a s ním také na přenosu dat mezi vzdálenými místy a různými technologiemi.

Integrace různých technologií byla v minulosti vždy výzvou, ale s novými standardy a silou, kterou protokol získává HTTP nyní je to mnohem jednodušší, protože nejsme závislí na integraci aplikací, ale každá aplikace má webové rozhraní, které jí diktuje data.

v Jáva mnohokrát budeme muset přistupovat k informacím, které mají nebo generují jiné aplikace, a proto nemůžeme opomenout aspekt znalostí o tom, jak vytvořit připojení z aplikace Jáva do sítě. Ale nejen do sítí, musíme také vědět, jak na to klienti webových služeb i když je to základním způsobem, protože tím zajistíme, abychom nebyli izolovaní v našem prostředí.

Co jsou webové služby?The webové služby Jsou to aplikace na serverech, které mají přístup k síti, mohou být v jakémkoli jazyce nebo technologii, ale veškerá komunikace s „vnějším světem“ je řízena prostřednictvím HTTP a její metody, ZÍSKEJTE, POST, PUT, DELETE atd.

PřipojeníZajímavostí tohoto typu aplikací je možnost vytváření spojení mezi zcela odlišnými technologiemi, například můžeme mít webovou službu napsanou v Krajta aby nám provedl inventář továrny a poté v naší aplikaci v Jáva připojujeme se k němu, abychom znali množství produktu.

Taková lehkost je to, co v posledních letech katapultovalo jejich rychlé přijetí a stalo se standardem nabízet takové nástroje, pokud jde o obchodní systémy a aplikace. Dokonce i osobní aplikace, jako jsou blogy nebo fóra, nabízejí webové služby usnadnit generování mobilních aplikací a aby vše zůstalo ve stejném ekosystému.

Když už jsme něco o předmětu webových služeb viděli, podívejme se, jak jsou klasifikovány.

Služby REST


Tyto typy služeb umožňují přenos dat prostřednictvím HTTP, pouze pomocí metod tohoto protokolu, obecně komunikace vyžaduje pouze odeslání dat buď prostřednictvím formulářů nebo JSON, někteří dokonce dostávají až XML.

Je to momentálně nejpopulárnější, protože stavba klientů ke spotřebě je velmi jednoduchá a nevyžaduje mnoho dalších příprav. Jednoduše, aby náš klient mohl spustit požadavek DOSTAT do jednoho Url služby, kterou můžeme začít používat nebo konzumovat, protože je známa i akce získávání dat.

Služby SOAP


Služba MÝDLO je mnohem starší než ZBYTEK, a ještě před několika lety to byl standardní způsob realizace aplikací webové služby, jeho konstrukce vyžaduje zejména dodržování některých protokolů a je nutné vygenerovat soubor XML volala WSDL, kde jsou definovány metody, ke kterým má klient přístup.

Vzhledem k vysoké složitosti přípravy zákazníků na konzumaci tohoto druhu služeb její popularita klesá, a proto ji většina nových technologií nebere v úvahu. V technologickém světě však stále existuje mnoho služeb, které jsou spravovány touto modalitou, takže i když se již nepoužívá, je stále nutné vědět, jak ji používat.

Složitost tohoto typu služby spočívá v přípravě různých XMLa dodržovat standardy podle platforem do puntíku, tento typ důvodu je těžkopádný, a proto vývojáři migrují na ZBYTEK.

Vytvořte program, který se připojuje pomocí TCP


Protože jsme si trochu důkladněji přečetli a přezkoumali, co představuje teoretickou část toho, čím jsou webové služby„Praktickou část tohoto tutoriálu zahájíme provedením velmi základního cvičení, které nám pomůže porozumět toku věcí.

Vytvoříme jednoduché připojení z naší aplikace prostřednictvím sítě pomocí TCP s týmem, který je v něm dostupný a dostupný, proto budeme potřebovat znát vaši adresu IP a port, který je k dispozici a mimo omezení různých bran firewall.

PožadavkyNejprve budeme požadovat balíček java.net. Socket to nám dává řadu nástrojů, které nám usnadní život vytvořením spojení, příklad, který ukazujeme, je samozřejmě velmi základní, ale dává nám základ k tomu, abychom mohli vytvářet věci nad rámec svých požadavků.

Chystáme se vytvořit program, který se pokusí připojit k počítači přes konkrétní port, ale tento program také vyhodnotí, zda během procesu připojení došlo k chybě nebo jakékoli komplikaci, takže můžeme jednat svědomitě a nečekat na osud selhání Podívejme se na kód pro tento příklad:

 import java.net.Socket; import java.net.UnknownHostException; import java.net.NoRouteToHostException; import java.net.ConnectException; public class ConnectionTest {public static void main (String [] argv) {String server = argv.length = = 1? argv [0]: "localhost"; int port = 80; try (Socket sock = new Socket (server, port)) {System.out.println ("- Úspěšné připojení k:" + server + "-"); } catch (UnknownHostException e) {System.err.println (server + "Neznámý server"); vrátit se; } catch (NoRouteToHostException e) {System.err.println (server + "Mimo rozsah"); vrátit se; } catch (ConnectException e) {System.err.println (server + "Připojení odmítnuto"); vrátit se; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); vrátit se; }}}
Začneme importem balíčku java.net. Socket s tím budeme mít třídu Zásuvka což je ten, který použijeme později k navázání spojení, pokud mu při provádění programu nepředáme argument, připojí se přímo k našemu počítači, v tomto případě uvedeme port 80, ale může být i jiný.

Umístíme vytvoření instance Zásuvka v bloku Zkus chytit to nám umožňuje vyhodnotit výjimky, pokud není připojení úspěšné, místo toho, aby se program náhle ukončil. Nakonec máme různé záchytné bloky, každý s jinou výjimkou, abychom měli představu o tom, co se stalo.

Aby výjimky fungovaly, viděli jsme, že na začátku jsme balíček importovali java.net které v tomto příkladu použijeme, nyní se podívejme, jak to všechno vypadá, když spustíme náš program. Při spouštění našeho programu se na následujícím obrázku podívejme, jak jsme se mohli úspěšně dostat k našemu routeru Wifi a naši localhost:

Klient služby REST


V tomto příkladu vytvoříme klienta malé webové služby, který se připojí k serveru ZBYTEKK tomu potřebujeme pouze server, který nám může poskytnout odpověď na tuto metodu DOSTAT z HTTP, proto můžeme použít freegeoip.net, který v závislosti na tom, co procházíme URL, může vrátit a JSON s daty z jakékoli webové stránky, kterou chceme.

Podívejme se na kód, který jsme vytvořili:

 import java.net.URL; import java.net.URLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; veřejná třída ClientRest {public static void main (String [] args) vyvolá výjimku {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); zkusit (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ()))) {String line; while ((line = is.readLine ())! = null) {System.out.println (line); }}}}
První věc, kterou uděláme, je import tříd Url Y URLConnection, tyto nám umožňují nejprve převést řetězec na adresu URL, kterou lze interpretovat Jáva a za druhé, vytvořte správné připojení. Poté importujeme dvě knihovny tříd, které nám umožňují manipulovat s daty, která přijmeme jako odpověď od webové služby.

Nakonec se připojíme k webové službě freegeoip.netV tomto případě mu předáme libovolnou stránku, o které víme, že existuje, tímto způsobem můžeme získat nějaký výsledek, poté odpověď uložíme do vyrovnávací paměti a poté ji přečteme a předáme objektu String, nakonec obsah vytiskneme a získá něco podobného, ​​co vidíme na následujícím obrázku:

ZVĚTŠIT

Samozřejmě je to jednoduchý přístup, abychom pochopili, jak webové služby fungují, protože nepokrývá odesílání parametrů od našeho klienta, ale za tímto účelem je lze dokumentovat na Apache HttpClient, což vám může poskytnout špičkové nástroje týkající se spotřeby tohoto typu webových služeb, které ponecháváme jako úkol.

S tímto jsme dokončili tento tutoriál, vytvořili jsme několik programů, které nám pomáhají dostat se na správnou cestu, abychom byli schopni zvládnout webové službyDíky tomu již vidíme, jak si naše mysl jistě začne představovat nejlepší využití těchto nástrojů v našich aplikacích, a tak věci podstatně zvětší.

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave