Lag en klient for webtjenester i Java

Nye informasjonsoverføringsformater tvinger oss til å endre måten vi tenker på applikasjonene våre på, hver dag er vi mer avhengige av Internett og dermed også overføring av data mellom fjerne steder og forskjellige teknologier.

Integrering av forskjellige teknologier var alltid en utfordring tidligere, men med de nye standardene og styrken som protokollen har tatt HTTP nå er det mye lettere, siden vi ikke er avhengige av å integrere applikasjoner, men hver applikasjon har et webgrensesnitt for å diktere sine data.

I Java mange ganger må vi få tilgang til informasjon som andre applikasjoner har eller genererer, og derfor kan vi ikke neglisjere kunnskapsaspektet om hvordan du oppretter tilkoblinger fra et program Java til nettverk. Men ikke bare til nettverk, vi må også vite hvordan vi skal gjøre webtjenesteklienter selv om det er på en grunnleggende måte siden vi med dette vil sørge for ikke å bli isolert i miljøet vårt.

Hva er webtjenester?De nettjenester De er applikasjoner som finnes på servere som har tilgang til et nettverk, disse kan være på alle språk eller teknologi, men all kommunikasjon med "omverdenen" administreres gjennom HTTP og dens metoder, FÅ, POST, PUT, SLETT, etc..

TilkoblingerDet interessante med denne typen applikasjoner er muligheten for å opprette forbindelser mellom helt forskjellige teknologier, for eksempel kan vi få en webtjeneste skrevet inn Python å ta oss inventar av en fabrikk og deretter i søknaden vår Java vi kobler oss til det for å vite mengder av et produkt.

Slik letthet er det som har katapultert deres raske adopsjon de siste årene, og har gjort det standard å tilby slike verktøy når det gjelder forretningssystemer og applikasjoner. Til og med personlige applikasjoner som blogger eller fora tilbyr nettjenester for å lette generering av mobilapplikasjoner og at alt forblir i det samme økosystemet.

Etter å ha sett litt om emnet webtjenester, la oss se hvordan de er klassifisert.

REST -tjenester


Denne typen tjenester tillater overføring av data gjennom HTTP, bare ved bruk av metodene i denne protokollen, krever kommunikasjonen vanligvis bare sending av data enten gjennom skjemaer eller JSON, noen får til og med opp til XML.

Det er det mest populære i øyeblikket siden konstruksjonen av klienter for forbruk er veldig enkel og ikke krever mange ekstra forberedelser. Rett og slett slik at vår klient kan starte en forespørsel til en Url av tjenesten kan vi begynne å bruke eller konsumere den ettersom handlingen med å innhente data også er kjent.

SOAP -tjenester


Tjenesten SÅPE er mye eldre enn HVILE, og inntil for noen få år siden var det standardmetoden for å realisere applikasjoner av nettjenester, konstruksjonen krever at du følger noen protokoller spesielt, og det er nødvendig å generere en fil XML kalt WSDL, det er der metodene som klienten kan få tilgang til er definert.

På grunn av den høye kompleksiteten i å forberede kundene på å konsumere denne typen tjenester, har populariteten falt, og det er derfor de fleste nye teknologier ikke tar det i betraktning. Imidlertid er det fortsatt mange tjenester som eksisterer i den teknologiske verden som administreres under denne modaliteten, så selv om den faller i bruk, er det fortsatt nødvendig å vite hvordan den skal brukes.

Kompleksiteten til denne typen tjenester ligger i forberedelsen av de forskjellige XML, og følg standardene i henhold til plattformene til punkt og prikke, er denne typen grunner som gjør det tungvint og derfor har utviklere migrert til HVILE.

Lag et program som kobles til ved hjelp av TCP


Siden vi har lest og gjennomgått litt grundigere hva som representerer den teoretiske delen av det de er nettjenester, skal vi starte den praktiske delen av denne opplæringen med å gjøre en veldig grunnleggende øvelse som vil hjelpe oss å forstå strømmen av ting.

Vi skal lage en enkel tilkobling fra applikasjonen vår gjennom nettverket ved hjelp av TCP med et team som er tilgjengelig og tilgjengelig i det, for dette må vi kjenne adressen din IP og en port som er tilgjengelig og utenfor begrensningene for de forskjellige brannmurene.

KravFørst og fremst vil vi kreve pakken java.net.Socket som gir oss en rekke verktøy som vil gjøre våre liv lettere ved å etablere forbindelser, åpenbart er eksemplet vi viser veldig grunnleggende, men det gir oss grunnlaget for å kunne skape ting utover avhengig av våre krav.

Vi skal lage et program som prøver å koble til en maskin gjennom en bestemt port, men dette programmet vil også evaluere om det har oppstått en feil eller en komplikasjon under tilkoblingsprosessen, med dette kan vi handle flittig og ikke vente på en dødelig fiasko La oss se på koden for dette eksemplet:

 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 = new Socket (server, port)) {System.out.println ("- Vellykket tilkobling til:" + server + "-"); } catch (UnknownHostException e) {System.err.println (server + "Ukjent server"); komme tilbake; } fangst (NoRouteToHostException e) {System.err.println (server + "Utenom omfang"); komme tilbake; } catch (ConnectException e) {System.err.println (server + "Tilkobling nektet"); komme tilbake; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); komme tilbake; }}}
Vi starter med å importere pakken java.net.Socket med dette vil vi ha klassen Stikkontakt som er den vi vil bruke senere for å etablere tilkoblingen. Hvis vi ikke sender et argument til den når vi kjører programmet, vil den koble seg direkte til datamaskinen vår, i dette tilfellet angir vi port 80, men det kan være en annen.

Vi plasserer etableringen av forekomsten Stikkontakt i en blokk prøve - fange dette lar oss vurdere unntakene hvis tilkoblingen ikke lykkes i stedet for å avslutte programmet brått. Til slutt har vi forskjellige fangstblokker hver med et annet unntak for å gi oss en ide om hva som gikk galt.

For at unntakene skulle fungere, så vi at vi i begynnelsen importerte pakken java.net som vi skal bruke i dette eksemplet, la oss nå se hvordan alt dette ser ut når vi kjører programmet vårt. Når vi kjører programmet, la oss se på bildet nedenfor hvordan vi kunne få tilgang til ruteren vår Wifi og vår lokal vert:

Klient for en REST -tjeneste


I dette eksemplet skal vi lage en liten webtjenesteklient som vil koble seg til en server HVILE, for dette trenger vi bare en server som kan gi oss et svar på metoden av HTTP, det er derfor vi kan bruke freegeoip.net som, avhengig av hva vi sender gjennom nettadressen, kan returnere a JSON med data fra hvilken som helst nettside vi ønsker.

La oss se koden vi har laget:

 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 Unntak {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ())))) {String line; mens ((linje = is.readLine ())! = null) {System.out.println (linje); }}}}
Det første vi gjør er å importere klassene Url Y URL -tilkobling, disse lar oss først konvertere en streng til en URL som kan tolkes av Java og for det andre, gjør den riktige forbindelsen. Deretter importerer vi to klassebiblioteker som lar oss manipulere dataene vi skal motta som et svar fra webtjenesten.

Til slutt gjør vi vår forbindelse til webtjenesten til freegeoip.netI dette tilfellet sender vi hvilken som helst side til den som vi vet eksisterer, på denne måten kan vi oppnå et resultat, så lagrer vi svaret i en buffer og leser det og sender det til et String -objekt, til slutt skriver vi ut innholdet og vi vil få noe som det vi ser på følgende bilde:

FORSTØRRE

Selvfølgelig er dette en enkel tilnærming for å kunne forstå hvordan webtjenester fungerer, siden det ikke dekker sending av parametere fra vår klient, men for dette kan de dokumenteres på Apache HttpClient, som kan gi deg overlegne verktøy angående forbruket av denne typen webtjenester, som vi etterlater som en oppgave.

Med dette har vi fullført denne opplæringen, vi har bygget et par programmer som hjelper oss å komme i gang for å kunne mestre nettjenesterMed dette ser vi allerede hvordan vårt sinn sikkert vil begynne å forestille seg den beste bruken av disse verktøyene i applikasjonene våre og dermed gjøre ting mye større.

Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave