Lav en klient til webtjenester i Java

Nye informationsoverførselsformater tvinger os til at ændre den måde, vi tænker på vores applikationer på, hver dag er vi mere afhængige af Internettet og dermed også overførsel af data mellem fjerne steder og forskellige teknologier.

Integrering af forskellige teknologier var altid en udfordring tidligere, men med de nye standarder og den styrke, som protokollen har taget HTTP nu er det meget lettere, da vi ikke er afhængige af at integrere applikationer, men hver applikation har en webgrænseflade til at diktere sine data.

I Java mange gange bliver vi nødt til at få adgang til oplysninger, som andre applikationer har eller genererer, og derfor kan vi ikke ignorere aspektet af viden om, hvordan man opretter forbindelser fra en applikation Java til netværk. Men ikke kun til netværk, vi skal også vide, hvordan vi gør webtjenesteklienter selvom det er på en grundlæggende måde, da vi med dette vil sørge for ikke at blive isoleret i vores miljø.

Hvad er webtjenester?Det Webtjenester De er applikationer, der findes på servere, der har adgang til et netværk, disse kan være på ethvert sprog eller teknologi, men al kommunikation med "omverdenen" administreres gennem HTTP og dens metoder, GET, POST, PUT, SLET osv.

ForbindelserDet interessante ved denne type applikationer er muligheden for at oprette forbindelser mellem helt forskellige teknologier, for eksempel kan vi få en webtjeneste skrevet i Python at tage os opgørelsen af ​​en fabrik og derefter i vores ansøgning i Java vi forbinder til det for at kende mængderne af et produkt.

Sådan let er det, der har katapuleret deres hurtige vedtagelse i de seneste år og har gjort det til standard at tilbyde sådanne værktøjer, når det kommer til forretningssystemer og applikationer. Selv personlige applikationer såsom blogs eller fora tilbyder Webtjenester for at lette genereringen af ​​mobile applikationer, og at alt forbliver i det samme økosystem.

Efter allerede at have set lidt om emnet webtjenester, lad os se, hvordan de er klassificeret.

REST -tjenester


Disse typer tjenester tillader overførsel af data igennem HTTP, kun ved hjælp af metoderne i denne protokol, kræver kommunikationen generelt kun afsendelse af data enten via formularer eller JSON, nogle modtager endda op til XML.

Det er det mest populære i øjeblikket, da konstruktionen af ​​klienter til forbrug er meget enkel og ikke kræver mange ekstra forberedelser. Simpelthen så vores klient kan starte en anmodning til en Url af tjenesten kan vi begynde at bruge eller forbruge den, da handlingen med at indhente data også er kendt.

SOAP -tjenester


Servicen SÆBE er meget ældre end HVILE, og indtil for et par år siden var det standardmetoden til at realisere applikationer af Webtjenester, dets konstruktion kræver især at følge nogle protokoller, og det er nødvendigt at generere en fil XML hedder WSDL, som er, hvor de metoder, som klienten kan få adgang til, er defineret.

På grund af den høje kompleksitet i at forberede kunderne på at forbruge denne type tjenester, har dens popularitet været faldende, hvorfor de fleste nye teknologier ikke tager højde for det. Der er dog stadig mange tjenester, der findes i den teknologiske verden, der administreres under denne modalitet, så selvom det er ved at blive brugt, er det stadig nødvendigt at vide, hvordan det skal bruges.

Kompleksiteten af ​​denne type service ligger i forberedelsen af ​​de forskellige XML, og følg standarderne i henhold til platformene til punkt og prikke, denne årsag er det, der gør det besværligt, og derfor har udviklere migreret til HVILE.

Opret et program, der forbinder ved hjælp af TCP


Da vi har læst og gennemgået lidt mere grundigt, hvad der repræsenterer den teoretiske del af, hvad de er Webtjenester, vi kommer til at starte den praktiske del af denne vejledning med at lave en meget grundlæggende øvelse, der hjælper os med at forstå strømmen af ​​ting.

Vi vil lave en simpel forbindelse fra vores applikation via netværket ved hjælp af TCP med et team, der er tilgængeligt og tilgængeligt i det, skal vi kende din adresse hertil IP og en port, der er tilgængelig og uden for de forskellige firewalls begrænsninger.

KravFørst og fremmest vil vi kræve pakken java.net.Socket det giver os en række værktøjer, der vil gøre vores liv lettere ved at etablere forbindelser, naturligvis er det eksempel, vi viser, meget grundlæggende, men det giver os grundlaget for at kunne skabe ting udover afhængigt af vores krav.

Vi skal oprette et program, der forsøger at oprette forbindelse til en maskine via en bestemt port, men dette program vil også evaluere, om der er opstået en fejl eller en komplikation under forbindelsesprocessen, med dette kan vi handle flittigt og ikke vente på en dødelig fiasko Lad os se på koden til dette eksempel:

 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; prøv (Socket sock = ny Socket (server, port)) {System.out.println ("- Vellykket forbindelse til:" + server + "-"); } catch (UnknownHostException e) {System.err.println (server + "Ukendt server"); Vend tilbage; } catch (NoRouteToHostException e) {System.err.println (server + "Out of scope"); Vend tilbage; } catch (ConnectException e) {System.err.println (server + "Forbindelse afvist"); Vend tilbage; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); Vend tilbage; }}}
Vi starter med at importere pakken java.net.Socket med dette vil vi have klassen Stikkontakt som er den, som vi senere vil bruge til at etablere forbindelsen, hvis vi ikke sender et argument til den, når programmet udføres, vil den forbinde direkte til vores computer, i dette tilfælde angiver vi port 80, men det kan være en anden.

Vi placerer oprettelsen af ​​instansen Stikkontakt i en blok prøv - fange dette giver os mulighed for at evaluere undtagelserne, hvis forbindelsen ikke lykkes i stedet for at afbryde programmet pludseligt. Endelig har vi forskellige fangstblokke hver med en anden undtagelse for at give os en idé om, hvad der gik galt.

For at undtagelserne skulle fungere, så vi, at vi i begyndelsen importerede pakken java.net som vi skal bruge i dette eksempel, lad os nu se, hvordan alt dette ser ud, når vi kører vores program. Når vi udfører vores program, lad os se i det følgende billede, hvordan vi kunne få adgang til vores router trådløst internet og vores lokal vært:

Klient til en REST -service


I dette eksempel vil vi oprette en lille webtjenesteklient, der opretter forbindelse til en server HVILE, til dette har vi kun brug for en server, der kan give os et svar på metoden af HTTP, derfor kan vi bruge freegeoip.net, som afhængigt af hvad vi sender igennem URL'en, kan returnere en JSON med data fra enhver webside, vi ønsker.

Lad os se den kode, vi har lavet:

 import java.net.URL; import java.net.URLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; public class ClientRest {public static void main (String [] args) kaster undtagelse {URLConnection conn = ny URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ())))) {String line; mens ((line = is.readLine ())! = null) {System.out.println (line); }}}}
Det første, vi gør, er at importere klasserne Url Y URL -forbindelse, disse giver os mulighed for først at konvertere en streng til en URL, der kan tolkes af Java og for det andet, lav den rigtige forbindelse. Derefter importerer vi to klassebiblioteker, der giver os mulighed for at manipulere de data, som vi vil modtage som et svar fra webtjenesten.

Endelig laver vi vores forbindelse til webtjenesten af freegeoip.netI dette tilfælde videregiver vi enhver side til den, som vi ved eksisterer, på denne måde kan vi opnå noget resultat, derefter gemmer vi svaret i en buffer og læser det derefter og sender det til et String -objekt, endelig udskriver vi indholdet og vi vil opnå noget som det, vi ser på følgende billede:

FORSTØRRE

Dette er naturligvis en enkel tilgang til at kunne forstå, hvordan webtjenester fungerer, da det ikke dækker afsendelse af parametre fra vores klient, men til dette kan de dokumenteres på Apache HttpClient, som kan give dig overlegne værktøjer vedrørende forbruget af denne type webtjenester, som vi efterlader som en opgave.

Med dette har vi afsluttet denne tutorial, vi har bygget et par programmer, der hjælper os med at komme på sporet for at kunne mestre WebtjenesterMed dette ser vi allerede, hvordan vores sind sikkert vil begynde at forestille sig den bedste anvendelse af disse værktøjer i vores applikationer og dermed gøre tingene meget større.

Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave