Napravite klijenta za web usluge u Javi

Novi formati prijenosa informacija tjeraju nas da promijenimo način razmišljanja o svojim aplikacijama, svaki dan sve više ovisimo o internetu, a s njim i o prijenosu podataka između udaljenih mjesta i različitih tehnologija.

Integriranje različitih tehnologija u prošlosti je uvijek bio izazov, ali s novim standardima i snagom koju protokol uzima HTTP sada je mnogo lakše jer ne ovisimo o integraciji aplikacija, već svaka aplikacija ima web sučelje za diktiranje svojih podataka.

U Java mnogo puta ćemo morati pristupiti informacijama koje druge aplikacije imaju ili generiraju, pa stoga ne možemo zanemariti aspekt znanja o tome kako uspostaviti veze iz aplikacije Java na mrežu. Ali ne samo s mrežama, moramo znati i kako to učiniti klijenti web usluga čak i ako je to na bazičan način jer ćemo se time pobrinuti da ne budemo izolirani u svom okruženju.

Što su web usluge?The Web usluge To su aplikacije koje se nalaze na poslužiteljima koji imaju pristup mreži, mogu biti na bilo kojem jeziku ili tehnologiji, međutim sva komunikacija s "vanjskim svijetom" upravlja se putem HTTP i njegove metode, GET, POST, PUT, DELETE itd.

VezeZanimljivost ove vrste aplikacije je mogućnost povezivanja između potpuno različitih tehnologija, na primjer možemo imati web uslugu napisanu na Piton da nam odnese popis tvornice, a zatim u našoj prijavi u Java povezujemo se s njim kako bismo znali količine proizvoda.

Takva lakoća je ono što je katapultiralo njihovo brzo usvajanje posljednjih godina i učinilo standardnim ponudu takvih alata kada su u pitanju poslovni sustavi i aplikacije. Nude se čak i osobne aplikacije poput blogova ili foruma Web usluge kako bi se olakšalo stvaranje mobilnih aplikacija i kako bi sve ostalo u istom ekosustavu.

Nakon što smo već vidjeli nešto o temi web usluga, pogledajmo kako su one klasificirane.

REST usluge


Ove vrste usluga omogućuju prijenos podataka putem HTTP, samo koristeći metode ovog protokola, općenito komunikacija zahtijeva samo slanje podataka bilo putem obrazaca ili JSON, neki čak primaju i do XML.

Trenutno je najpopularniji jer je izgradnja klijenata za potrošnju vrlo jednostavna i ne zahtijeva mnogo dodatnih priprema. Jednostavno kako bi naš klijent mogao pokrenuti zahtjev DOBITI jednom URL usluge koju možemo početi koristiti ili konzumirati jer je poznata i radnja pribavljanja podataka.

SOAP usluge


Usluga SAPUN mnogo je stariji od ODMOR, a do prije nekoliko godina to je bio standardni način ostvarivanja aplikacija Web usluge, njegova konstrukcija zahtijeva posebno pridržavanje nekih protokola i potrebno je generirati datoteku XML zvao WSDL, gdje su definirane metode kojima klijent može pristupiti.

Zbog velike složenosti pripreme kupaca za konzumaciju ove vrste usluga, njegova popularnost je padala, zbog čega većina novih tehnologija to ne uzima u obzir. Međutim, u tehnološkom svijetu još uvijek postoje mnoge usluge kojima se upravlja u skladu s ovim načinom pa je, iako se više ne koristi, ipak potrebno znati koristiti.

Složenost ove vrste usluga leži u pripremi različitih XML, i doslovno slijede standarde prema platformama, ova vrsta razloga je ono što ga čini glomaznim i stoga su programeri prešli na ODMOR.

Izradite program koji se povezuje pomoću TCP -a


Budući da smo malo detaljnije pročitali i pregledali ono što predstavlja teoretski dio onoga što oni jesu Web usluge, počet ćemo s praktičnim dijelom ovog vodiča izvođenjem vrlo osnovne vježbe koja će nam pomoći razumjeti tijek stvari.

Ostvarit ćemo jednostavnu vezu iz naše aplikacije putem mreže pomoću TCP s timom koji je dostupan i dostupan u njemu, za to ćemo morati znati vašu adresu IP i port koji je dostupan i izvan ograničenja različitih vatrozida.

ZahtjeviPrije svega, trebat ćemo paket java.net.Utičnica to nam daje niz alata koji će nam olakšati život uspostavljanjem veza, očito je primjer koji prikazujemo vrlo jednostavan, ali daje nam osnovu da možemo stvarati stvari izvan ovisno o našim zahtjevima.

Izradit ćemo program koji se pokušava povezati s računalom putem određenog porta, no ovaj će program također procijeniti je li došlo do pogreške ili bilo koje komplikacije tijekom procesa povezivanja, s tim možemo marljivo djelovati i ne čekati fatalnu smrt neuspjeh Pogledajmo kod za ovaj primjer:

 import java.net.Socket; import java.net.UnknownHostException; import java.net.NoRouteToHostException; import java.net.ConnectException; javna klasa 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 ("- Uspješno povezivanje na:" + poslužitelj + "-"); } catch (UnknownHostException e) {System.err.println (poslužitelj + "Nepoznat poslužitelj"); povratak; } catch (NoRouteToHostException e) {System.err.println (poslužitelj + "Izvan opsega"); povratak; } catch (ConnectException e) {System.err.println (poslužitelj + "Veza odbijena"); povratak; } catch (java.io.IOException e) {System.err.println (poslužitelj + '' + e.getMessage ()); povratak; }}}
Počinjemo uvozom paketa java.net.Utičnica s ovim ćemo imati klasu Utičnica koji ćemo kasnije koristiti za uspostavljanje veze, ako mu prilikom izvođenja programa ne proslijedimo argument, on će se izravno povezati s našim računalom, u ovom slučaju označavamo port 80, ali može biti i drugi.

Smještamo stvaranje instance Utičnica u bloku pokušaj uhvatiti to nam omogućuje da ocijenimo iznimke ako veza nije uspješna umjesto da naglo prekinemo program. Konačno, imamo različite blokove ulova, svaki s drugačijom iznimkom koji nam daju predodžbu o tome što je pošlo po zlu.

Kako bi iznimke funkcionirale, vidjeli smo da smo na početku uvozili paket java.net koju ćemo upotrijebiti u ovom primjeru, sada da vidimo kako sve ovo izgleda kada pokrenemo naš program. Prilikom izvršavanja našeg programa, vidimo na sljedećoj slici kako smo uspjeli pristupiti našem usmjerivaču Wifi i naše localhost:

Klijent za uslugu REST


U ovom primjeru stvorit ćemo mali klijent web usluge koji će se povezati s poslužiteljem ODMOR, za to nam je potreban samo poslužitelj koji nam može dati odgovor na metodu DOBITI od HTTP, zato možemo koristiti freegeoip.net koji, ovisno o tome što prođemo kroz URL, može vratiti a JSON s podacima sa bilo koje web stranice koju želimo.

Pogledajmo kod koji smo napravili:

 import java.net.URL; import java.net.URLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; javni razred ClientRest {public static void main (String [] args) baca iznimku {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ()))) {String line; while ((linija = is.readLine ())! = null) {System.out.println (linija); }}}}
Prvo što radimo je uvoz klasa URL Y URLConnection, oni nam omogućuju da prvo pretvorimo niz u URL koji se može interpretirati Java i drugo, uspostavite pravu vezu. Zatim uvozimo dvije knjižnice klasa koje nam omogućuju manipuliranje podacima koje ćemo primiti kao odgovor od web usluge.

Konačno, povezujemo se s web uslugom domena freegeoip.netU ovom slučaju na nju prosljeđujemo bilo koju stranicu za koju znamo da postoji, na ovaj način možemo dobiti neki rezultat, zatim odgovor spremamo u međuspremnik, zatim ga čitamo i prosljeđujemo objektu String, na kraju ispisujemo sadržaj i dobit će nešto poput onoga što vidimo na sljedećoj slici:

POVEĆAJTE

Naravno, ovo je jednostavan pristup kako biste mogli razumjeti kako web usluge rade, jer ne pokriva slanje parametara od našeg klijenta, ali za to se mogu dokumentirati na Apache HttpClient, koji vam mogu dati vrhunske alate u pogledu potrošnje ove vrste web usluga, što ostavljamo kao zadatak.

Ovim smo završili ovaj vodič, izgradili smo nekoliko programa koji nam pomažu da krenemo na put kako bismo mogli savladati Web uslugeTime već vidimo kako će naš um zasigurno početi zamišljati najbolju uporabu ovih alata u našim aplikacijama i time učiniti stvari mnogo većima.

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave