Skapa klient för webbtjänster i Java

Nya informationsöverföringsformat tvingar oss att ändra hur vi tänker om våra applikationer, varje dag är vi mer beroende av Internet och med det också överföring av data mellan avlägsna platser och olika tekniker.

Att integrera olika tekniker var alltid en utmaning tidigare, men med de nya standarderna och styrkan som protokollet har tagit HTTP nu är det mycket lättare, eftersom vi inte är beroende av att integrera applikationer, men varje applikation har ett webbgränssnitt för att diktera sina data.

I Java många gånger kommer vi att behöva komma åt information som andra applikationer har eller genererar och därför kan vi inte försumma kunskapsaspekten om hur man gör anslutningar från en applikation Java till nätverk. Men inte bara till nätverk, vi måste också veta hur vi ska göra webbtjänstklienter även om det är på ett grundläggande sätt eftersom vi med detta kommer att se till att inte isoleras i vår miljö.

Vad är webbtjänster?De webbservice De är applikationer som finns på servrar som har tillgång till ett nätverk, dessa kan vara på alla språk eller teknik, men all kommunikation med "omvärlden" hanteras genom HTTP och dess metoder, GET, POST, PUT, DELETE, etc..

AnslutningarDet intressanta med den här typen av applikationer är möjligheten att skapa anslutningar mellan helt olika tekniker, till exempel kan vi ha en webbtjänst skriven i Pytonorm att ta oss inventeringen av en fabrik och sedan i vår ansökan i Java vi ansluter till den för att veta mängderna av en produkt.

Sådana lättheter är vad som har katapulterat deras snabba adoption de senaste åren och har gjort det standard att erbjuda sådana verktyg när det gäller affärssystem och applikationer. Även personliga applikationer som bloggar eller forum erbjuder webbservice för att underlätta skapandet av mobila applikationer och att allt förblir i samma ekosystem.

Efter att ha sett lite om ämnet webbtjänster, låt oss se hur de klassificeras.

REST -tjänster


Dessa typer av tjänster tillåter överföring av data genom HTTP, endast med hjälp av metoderna i detta protokoll, i allmänhet kräver kommunikationen bara att data skickas antingen genom formulär eller JSON, vissa får till och med upp till XML.

Det är det mest populära för tillfället sedan konstruktionen av kunder för konsumtion är mycket enkel och inte kräver många ytterligare förberedelser. Helt enkelt så att vår klient kan starta en förfrågan SKAFFA SIG till en Url av tjänsten kan vi börja använda eller konsumera den eftersom åtgärden för att erhålla data också är känd.

SOAP -tjänster


Tjänsten TVÅL är mycket äldre än RESTEN, och fram till för några år sedan var det standardmetoden för att förverkliga applikationer av webbservice, dess konstruktion kräver att man följer vissa protokoll i synnerhet och det är nödvändigt att generera en fil XML kallad WSDL, där definieras de metoder som klienten kan komma åt.

På grund av den höga komplexiteten att förbereda kunderna för att konsumera denna typ av tjänster har dess popularitet minskat, varför de flesta nya tekniker inte tar hänsyn till det. Det finns dock fortfarande många tjänster som finns i den tekniska världen som hanteras under denna metod, så även om det håller på att bli oanvända är det fortfarande nödvändigt att veta hur man använder det.

Komplexiteten i denna typ av tjänster ligger i förberedelsen av de olika XML, och följ standarderna enligt plattformarna till punkt och pricka, denna typ av anledning är det som gör det besvärligt och därför har utvecklare migrerat till RESTEN.

Skapa ett program som ansluter med TCP


Eftersom vi har läst och granskat lite mer grundligt vad som representerar den teoretiska delen av vad de är webbservice, vi ska börja den praktiska delen av denna handledning med att göra en mycket grundläggande övning som hjälper oss att förstå flödet av saker.

Vi kommer att göra en enkel anslutning från vår applikation via nätverket med TCP med ett team som är tillgängligt och tillgängligt i det, för detta måste vi veta din adress IP och en port som är tillgänglig och utanför begränsningarna för de olika brandväggarna.

KravFörst och främst kommer vi att kräva paketet java.net.Socket som ger oss en rad verktyg som kommer att göra våra liv enklare genom att upprätta förbindelser, uppenbarligen är exemplet vi visar väldigt grundläggande men det ger oss grunden för att kunna skapa saker bortom beroende på våra krav.

Vi kommer att skapa ett program som försöker ansluta till en maskin via en specifik port, men detta program kommer också att utvärdera om ett fel eller någon komplikation har uppstått under anslutningsprocessen, med detta kan vi agera flitigt och inte vänta på ett dödligt misslyckande Låt oss titta på koden för detta exempel:

 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; prova (Socket sock = new Socket (server, port)) {System.out.println ("- lyckad anslutning till:" + server + "-"); } catch (UnknownHostException e) {System.err.println (server + "Okänd server"); lämna tillbaka; } catch (NoRouteToHostException e) {System.err.println (server + "Out of scope"); lämna tillbaka; } catch (ConnectException e) {System.err.println (server + "Anslutning nekad"); lämna tillbaka; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); lämna tillbaka; }}}
Vi börjar med att importera paketet java.net.Socket med detta kommer vi att ha klassen Uttag som är den som vi kommer att använda senare för att upprätta anslutningen, om vi inte skickar ett argument till den när programmet körs kommer den att ansluta direkt till vår dator, i det här fallet anger vi port 80, men det kan vara en annan.

Vi placerar skapandet av instansen Uttag i ett block försök fånga detta gör att vi kan utvärdera undantagen om anslutningen inte lyckas istället för att avsluta programmet plötsligt. Slutligen har vi olika fångstblock var och ett med ett annat undantag för att ge oss en uppfattning om vad som gick snett.

För att undantagen skulle fungera såg vi att vi i början importerade paketet java.net som vi ska använda i det här exemplet, låt oss nu se hur allt detta ser ut när vi kör vårt program. När vi kör vårt program, låt oss se i följande bild hur vi lyckades komma åt vår router Wifi och vår lokal värd:

Klient för en REST -tjänst


I det här exemplet ska vi skapa en liten webbtjänstklient som ansluter till en server RESTEN, för detta behöver vi bara en server som kan ge oss ett svar på metoden SKAFFA SIG av HTTP, det är därför vi kan använda freegeoip.net som, beroende på vad vi skickar via webbadressen, kan returnera en JSON med data från alla webbsidor som vi vill ha.

Låt oss se koden vi har gjort:

 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) kastar undantag {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ())))) {String line; medan ((line = is.readLine ())! = null) {System.out.println (line); }}}}
Det första vi gör är att importera klasserna Url Y URL -anslutning, dessa tillåter oss att först konvertera en sträng till en webbadress som kan tolkas av Java och för det andra, gör rätt anslutning. Sedan importerar vi två klassbibliotek som gör att vi kan manipulera data som vi kommer att få som svar från webbtjänsten.

Slutligen gör vi vår anslutning till webbtjänsten av freegeoip.netI det här fallet skickar vi alla sidor till den som vi vet finns, på så sätt kan vi få något resultat, sedan lagrar vi svaret i en buffert och läser det sedan och skickar det till ett String -objekt, slutligen skriver vi ut innehållet och vi kommer att få något som det vi ser i följande bild:

FÖRSTORA

Naturligtvis är detta ett enkelt tillvägagångssätt för att kunna förstå hur webbtjänster fungerar, eftersom det inte täcker överföring av parametrar från vår klient, men för detta kan de dokumenteras på Apache HttpClient, som kan ge dig överlägsna verktyg när det gäller förbrukningen av denna typ av webbtjänster, som vi lämnar som en uppgif.webpt.

Med detta har vi avslutat den här handledningen, vi har byggt ett par program som hjälper oss att komma på rätt spår för att kunna behärska webbserviceMed detta ser vi redan hur vårt sinne säkert kommer att föreställa sig den bästa användningen av dessa verktyg i våra applikationer och därmed göra saker mycket större.

Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave