Client für Webdienste in Java erstellen

Neue Informationsübertragungsformate zwingen uns zu einem Umdenken über unsere Anwendungen, jeden Tag sind wir mehr auf das Internet und damit auch auf die Übertragung von Daten zwischen entfernten Orten und unterschiedlichen Technologien angewiesen.

Die Integration verschiedener Technologien war in der Vergangenheit immer eine Herausforderung, aber mit den neuen Standards und der Stärke, die das Protokoll genommen hat HTTP Jetzt ist es viel einfacher, da wir nicht auf die Integration von Anwendungen angewiesen sind, sondern jede Anwendung über eine Weboberfläche verfügt, um ihre Daten zu diktieren.

In Java Oft müssen wir auf Informationen zugreifen, die andere Anwendungen haben oder generieren, und können daher den Aspekt des Wissens darüber, wie Verbindungen von einer Anwendung aus hergestellt werden, nicht vernachlässigen Java Netzwerken. Aber nicht nur zu Netzwerken, wir müssen auch wissen, wie es geht Webservice-Clients auch wenn es nur im Grunde ist, denn damit stellen wir sicher, dass wir nicht in unserer Umgebung isoliert sind.

Was sind Webdienste?Das Internetdienste Es handelt sich um Anwendungen, die auf Servern zu finden sind, die Zugang zu einem Netzwerk haben. Diese können in jeder Sprache oder Technologie sein, jedoch wird die gesamte Kommunikation mit der "Außenwelt" über verwaltet HTTP und seine Methoden, GET, POST, PUT, DELETE usw..

AnschlüsseDas Interessante an dieser Art von Anwendung ist die Möglichkeit, Verbindungen zwischen ganz unterschiedlichen Technologien herzustellen, zum Beispiel können wir einen Webservice schreiben lassen Python uns das Inventar einer Fabrik zu nehmen und dann in unserer Bewerbung in Java Wir verbinden uns damit, um die Mengen eines Produkts zu kennen.

Diese Einfachheit hat ihre schnelle Akzeptanz in den letzten Jahren katapultiert und es zum Standard gemacht, solche Tools für Geschäftssysteme und -anwendungen anzubieten. Auch persönliche Anwendungen wie Blogs oder Foren bieten sich an Internetdienste um die Generierung mobiler Anwendungen zu erleichtern und dass alles im gleichen Ökosystem bleibt.

Nachdem wir bereits ein wenig über das Thema Webservices gesehen haben, sehen wir uns an, wie sie klassifiziert werden.

REST-Dienste


Diese Arten von Diensten ermöglichen die Übertragung von Daten durch HTTP, nur mit den Methoden dieses Protokolls, im Allgemeinen erfordert die Kommunikation nur das Senden von Daten entweder über Formulare oder JSON, manche erhalten sogar bis zu XML.

Es ist derzeit das beliebteste, da die Konstruktion von Clients für den Verzehr sehr einfach ist und nicht viele zusätzliche Vorbereitungen erfordert. Einfach damit unser Kunde eine Anfrage starten kann BEKOMMEN zu einem URL des Dienstes können wir beginnen, ihn zu nutzen oder zu konsumieren, da die Aktion des Abrufens von Daten ebenfalls bekannt ist.

SOAP-Dienste


Der Service SEIFE ist viel älter als SICH AUSRUHEN, und war bis vor wenigen Jahren der Standard zur Realisierung von Anwendungen von Internetdienste, seine Konstruktion erfordert insbesondere die Einhaltung einiger Protokolle und es ist notwendig, eine Datei zu erstellen XML namens WSDL, hier werden die Methoden definiert, auf die der Client zugreifen kann.

Aufgrund der hohen Komplexität der Vorbereitung der Kunden auf die Nutzung dieser Art von Diensten ist ihre Popularität rückläufig, weshalb die meisten neuen Technologien sie nicht berücksichtigen. Es gibt jedoch immer noch viele Dienste in der technologischen Welt, die unter dieser Modalität verwaltet werden. Auch wenn sie nicht mehr verwendet wird, ist es immer noch erforderlich, zu wissen, wie man sie verwendet.

Die Komplexität dieser Art von Service liegt in der Vorbereitung der verschiedenen XML, und halten Sie sich buchstabengetreu an die Standards der Plattformen, diese Art von Gründen macht es umständlich und daher migrieren die Entwickler zu SICH AUSRUHEN.

Erstellen Sie ein Programm, das über TCP eine Verbindung herstellt


Da wir etwas gründlicher gelesen und überprüft haben, was den theoretischen Teil dessen darstellt, was sie sind Internetdienste, werden wir den praktischen Teil dieses Tutorials mit einer sehr grundlegenden Übung beginnen, die uns hilft, den Ablauf der Dinge zu verstehen.

Wir werden eine einfache Verbindung von unserer Anwendung über das Netzwerk herstellen mit TCP mit einem erreichbaren und verfügbaren Team, dafür benötigen wir Ihre Adresse IP und ein Port, der verfügbar ist und außerhalb der Beschränkungen der verschiedenen Firewalls liegt.

AnforderungenAls erstes benötigen wir das Paket java.net.Socket Das gibt uns eine Reihe von Werkzeugen, die unser Leben durch das Herstellen von Verbindungen erleichtern. Das Beispiel, das wir zeigen, ist natürlich sehr einfach, aber es gibt uns die Grundlage, um je nach unseren Anforderungen darüber hinaus Dinge zu schaffen.

Wir werden ein Programm erstellen, das versucht, sich über einen bestimmten Port mit einem Computer zu verbinden. Dieses Programm wird jedoch auch auswerten, ob während des Verbindungsvorgangs ein Fehler oder eine Komplikation aufgetreten ist, damit wir sorgfältig handeln und nicht auf einen fatalen Fehler warten können Sehen wir uns den Code für dieses Beispiel an:

 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 = neuer Socket (Server, Port)) {System.out.println ("- Erfolgreiche Verbindung zu:" + Server + "-"); } catch (UnknownHostException e) {System.err.println (Server + "Unbekannter Server"); Rückkehr; } catch (NoRouteToHostException e) {System.err.println (Server + "Out of scope"); Rückkehr; } catch (ConnectException e) {System.err.println (Server + "Verbindung abgelehnt"); Rückkehr; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); Rückkehr; }}}
Wir beginnen mit dem Importieren des Pakets java.net.Socket damit haben wir die klasse Steckdose dies ist diejenige, die wir später verwenden werden, um die Verbindung herzustellen. Wenn wir bei der Ausführung des Programms kein Argument übergeben, wird es direkt mit unserem Computer verbunden. In diesem Fall geben wir Port 80 an, aber es kann ein anderer sein.

Wir platzieren die Erstellung der Instanz Steckdose in einem Block versuchen - fangen Dadurch können wir die Ausnahmen auswerten, wenn die Verbindung nicht erfolgreich ist, anstatt das Programm abrupt zu beenden. Schließlich haben wir verschiedene Catch-Blöcke mit jeweils einer anderen Ausnahme, um uns eine Vorstellung davon zu geben, was schief gelaufen ist.

Damit die Ausnahmen funktionieren, haben wir gesehen, dass wir am Anfang das Paket importiert haben java.net die wir in diesem Beispiel verwenden werden, sehen wir uns nun an, wie das alles aussieht, wenn wir unser Programm ausführen. Sehen wir uns beim Ausführen unseres Programms im folgenden Bild an, wie wir erfolgreich auf unseren Router zugreifen konnten W-lan und unser localhost:

Client für einen REST-Service


In diesem Beispiel erstellen wir einen kleinen Webservice-Client, der eine Verbindung zu einem Server herstellt SICH AUSRUHEN, dafür brauchen wir nur einen Server, der uns eine Antwort auf die Methode geben kann BEKOMMEN von HTTP, deshalb können wir freegeoip.net verwenden, das, je nachdem, was wir über die URL übergeben, ein zurückgeben kann JSON mit Daten von jeder gewünschten Webseite.

Sehen wir uns den Code an, den wir erstellt haben:

 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) wirft Ausnahme {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ()))) {String line; while ((line = is.readLine ())! = null) {System.out.println (line); }}}}
Als erstes importieren wir die Klassen URL Ja URL-Verbindung, diese erlauben uns, zuerst einen String in eine URL umzuwandeln, die interpretiert werden kann von Java und zweitens, stellen Sie die richtige Verbindung her. Dann importieren wir zwei Klassenbibliotheken, mit denen wir die Daten manipulieren können, die wir als Antwort vom Webdienst erhalten.

Schließlich stellen wir unsere Verbindung zum Webservice von freegeoip.netIn diesem Fall übergeben wir jede Seite, von der wir wissen, dass sie existiert, auf diese Weise können wir ein Ergebnis erhalten, dann speichern wir die Antwort in einem Puffer, lesen sie und übergeben sie an ein String-Objekt, schließlich drucken wir den Inhalt und wir erhalten so etwas wie das, was wir im folgenden Bild sehen:

VERGRÖSSERN

Dies ist natürlich ein einfacher Ansatz, um die Funktionsweise von Webservices verstehen zu können, da dies nicht das Senden von Parametern von unserem Client umfasst, aber dafür können sie auf dokumentiert werden Apache HttpClient, die Ihnen überlegene Werkzeuge in Bezug auf die Nutzung dieser Art von Webdiensten zur Verfügung stellen kann, die wir als Aufgabe überlassen.

Damit haben wir dieses Tutorial abgeschlossen, wir haben ein paar Programme gebaut, die uns helfen, auf den richtigen Weg zu kommen, um die InternetdiensteDamit sehen wir bereits, wie sich unser Verstand sicherlich die besten Einsatzmöglichkeiten dieser Tools in unseren Anwendungen vorstellen und die Dinge so viel größer machen wird.

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave