Die neuen Formate der Informationsübertragung zwingen uns dazu, die Art und Weise zu ändern, in der wir über unsere Anwendungen nachdenken. Jeden Tag sind wir stärker vom Internet und damit auch von der Datenübertragung zwischen entfernten Orten und verschiedenen Technologien abhängig.
Die Integration verschiedener Technologien war in der Vergangenheit immer eine Herausforderung, aber mit den neuen Standards und der Stärke des HTTP- Protokolls ist dies jetzt viel einfacher, da wir nicht auf die Integration von Anwendungen angewiesen sind, sondern für jede Anwendung eine Webschnittstelle zur Verfügung steht Ihre Daten
In Java müssen wir oft auf Informationen zugreifen, die andere Anwendungen haben oder generieren, und daher können wir den Aspekt des Wissens darüber, wie Verbindungen von einer Java- Anwendung zum Netzwerk hergestellt werden, nicht vernachlässigen. Wir müssen aber nicht nur Netzwerke, sondern auch wissen, wie man Webservices-Clients auch nur auf einfache Weise erstellt, um sicherzustellen, dass wir nicht in unserer Umgebung isoliert bleiben.
Diese Leichtigkeit hat in den letzten Jahren zu einer rasanten Verbreitung geführt und dazu geführt, dass es ein Standard ist, solche Tools anzubieten, wenn es um Systeme und Geschäftsanwendungen geht. Sogar persönliche Anwendungen wie Blogs oder Foren bieten Webdienste an , um die Erstellung mobiler Anwendungen zu vereinfachen und um sicherzustellen , dass alles im selben Ökosystem bleibt.
Nachdem wir uns bereits mit dem Thema Webservices befasst haben, wollen wir uns ansehen, wie die gleichen Kleinanzeigen sind.
REST-Dienstleistungen
Diese Art von Diensten ermöglicht die Übertragung von Daten über HTTP , wobei nur die Methoden dieses Protokolls verwendet werden. Für die Kommunikation ist normalerweise nur das Senden von Daten über Formulare oder JSON erforderlich, selbst einige empfangen bis zu XML .
Es ist derzeit das beliebteste, da die Erstellung von Kundeninformationen für den Verbrauch sehr einfach ist und nicht viele zusätzliche Vorbereitungen erforderlich sind. Nur damit unser Kunde eine GET- Anfrage an eine URL des Dienstes senden kann, können wir damit beginnen, ihn zu verwenden oder zu nutzen, wie es für den Vorgang des Abrufs von Daten bekannt ist.
SOAP-Dienste
Der SOAP- Dienst ist viel älter als REST , und bis vor einigen Jahren war er die Standardform der Realisierung von Webdienstanwendungen . Für seinen Aufbau müssen insbesondere einige Protokolle befolgt und eine XML- Datei mit dem Namen WSDL erstellt werden , in der sie definiert sind die Methoden, auf die der Client zugreifen kann.
Aufgrund der hohen Komplexität der Ausarbeitung der Kunden, um diese Art von Service in Anspruch zu nehmen, hat seine Beliebtheit abgenommen, so dass die meisten neuen Technologien dies nicht berücksichtigen. Es gibt jedoch immer noch viele Dienste in der technologischen Welt, die unter dieser Modalität verwaltet werden. Selbst wenn sie nicht mehr genutzt werden, müssen Sie wissen, wie sie zu verwenden sind.
Die Komplexität dieser Art von Diensten liegt in der Erstellung von unterschiedlichem XML und in der Einhaltung der Standards der Plattformen. Diese Art von Gründen macht es umständlich und daher haben die Entwickler auf REST migriert.
Erstellen Sie ein Programm, das eine Verbindung über TCP herstellt
Da wir den theoretischen Teil der Webdienste etwas gründlicher gelesen und überprüft haben, beginnen wir den praktischen Teil dieses Tutorials mit einer sehr einfachen Übung, die uns jedoch hilft, den Ablauf der Dinge zu verstehen .
Wir stellen eine einfache Verbindung von unserer Anwendung über das Netzwerk über TCP mit einem Computer her, auf den zugegriffen werden kann und der in ihm verfügbar ist. Dazu müssen wir Ihre IP-Adresse und einen verfügbaren Port außerhalb der Beschränkungen von kennen verschiedene Firewalls
Wir werden ein Programm erstellen, das versucht, über einen bestimmten Port eine Verbindung zu einem Computer herzustellen. Dieses Programm wertet jedoch auch aus, ob während des Verbindungsprozesses ein Fehler oder eine Komplikation aufgetreten ist. Auf diese Weise können wir gewissenhaft vorgehen und nicht auf einen schwerwiegenden Fehler warten 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; öffentliche Klasse ConexionTest {public static void main (String [] argv) {Server-String = 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"); zurückkehren; } catch (NoRouteToHostException e) {System.err.println (Server + "Out of range"); zurückkehren; } catch (ConnectException e) {System.err.println (Server + "Verbindung abgelehnt"); zurückkehren; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); zurückkehren; }}}
Wir beginnen damit, das java.net.Socket- Paket zu importieren. Wir haben die Socket- Klasse, die wir später zum Herstellen der Verbindung verwenden werden. Wenn wir bei der Ausführung des Programms kein Argument übergeben, wird die Verbindung direkt mit unserem Team hergestellt Fall Port 80, aber es kann eine andere sein.
Wir platzieren die Erstellung der Socket- Instanz in einem Try-Catch- Block. Dadurch können wir die Ausnahmen auswerten, wenn die Verbindung nicht hergestellt wird, anstatt das Programm abrupt zu beenden. Schließlich haben wir verschiedene Fangblöcke mit jeweils unterschiedlichen Ausnahmen, um eine Vorstellung davon zu bekommen, was schief gelaufen ist.
Damit die Ausnahmen funktionieren, haben wir gesehen, dass wir zu Beginn das java.net- Paket importiert haben, das wir in diesem Beispiel verwenden werden. Nun wollen wir sehen, wie wir uns verhalten, wenn wir unser Programm ausführen. Wenn wir unser Programm ausführen, sehen wir in der folgenden Abbildung, wie wir erfolgreich auf unseren WLAN- Router und unseren Localhost zugreifen konnten:
Client für einen REST-Service
In diesem Beispiel erstellen wir einen kleinen Web-Service-Client, der eine Verbindung zu einem REST- Server herstellt. Dazu benötigen wir nur einen Server, der eine Antwort auf die HTTP- GET- Methode gibt. Deshalb können wir freegeoip.net verwenden, das Abhängig davon, was wir über die URL übergeben, können Sie einen JSON mit Daten von jeder gewünschten Webseite zurückgeben.
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 CustomerRest {public statisch void main (String [] args) löst Exception {URLConnection conn = new URL aus ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (neuer InputStreamReader (conn.getInputStream ())) {String line; while ((line = is.readLine ())! = null) {System.out.println (line); }}}}
Als erstes importieren wir die URL- und URLConnection- Klassen. Sie ermöglichen uns, einen String in eine URL zu konvertieren, die von Java interpretiert werden kann, und dann die entsprechende Verbindung herzustellen. Anschließend importieren wir zwei Klassenbibliotheken, mit denen wir die Daten bearbeiten können, die wir als Antwort auf den Webdienst erhalten.
Schließlich stellen wir eine Verbindung zum Webdienst von freegeoip.net her . In diesem Fall übergeben wir eine Seite, von der wir wissen, dass sie vorhanden ist, damit wir ein Ergebnis erhalten. Die Antwort wird in einem Puffer gespeichert und dann gelesen und an ein Objekt übergeben String, endlich machen wir den Eindruck des Inhalts und erhalten so etwas wie das, was wir auf dem folgenden Bild sehen:
Natürlich ist dies ein einfacher Ansatz, um zu verstehen, wie Webservices funktionieren, da er nicht das Senden von Parametern von unserem Client abdeckt. Hierfür können Sie jedoch Informationen zu Apache HttpClient dokumentieren, mit denen Sie überlegene Tools zum Verbrauch dieser Informationen erhalten Art von Web-Services, die wir als Aufgabe verlassen haben.
Nachdem wir dieses Tutorial abgeschlossen haben, haben wir einige Programme erstellt, die uns dabei helfen, die Webservices zu beherrschen. Auf diese Weise können wir sehen, wie sich unser Verstand mit Sicherheit vorstellen wird, wie diese Tools in unseren Anwendungen am besten eingesetzt werden viel größere Dinge.