Créer un client pour les services Web en Java

Les nouveaux formats de transfert d'informations nous obligent à changer notre façon de penser nos applications, chaque jour nous dépendons davantage d'Internet et avec lui aussi de la transmission de données entre des lieux distants et des technologies différentes.

L'intégration de différentes technologies a toujours été un défi dans le passé, mais avec les nouvelles normes et la force que le protocole a pris HTTP maintenant c'est beaucoup plus facile, puisque nous ne dépendons pas de l'intégration d'applications, mais chaque application dispose d'une interface web pour dicter ses données.

Dans Java plusieurs fois, nous aurons besoin d'accéder à des informations que d'autres applications possèdent ou génèrent et nous ne pouvons donc pas négliger l'aspect de la connaissance de la manière d'établir des connexions à partir d'une application Java à réseauter. Mais pas seulement aux réseaux, il faut aussi savoir faire clients de services Web même si c'est de manière basique puisqu'avec cela nous ferons en sorte de ne pas être isolés dans notre environnement.

Que sont les services Web ?Les services Web Ce sont des applications trouvées sur des serveurs qui ont accès à un réseau, ceux-ci peuvent être dans n'importe quelle langue ou technologie, cependant toute communication avec le "monde extérieur" est gérée via HTTP et ses méthodes, OBTENIR, POSTER, METTRE, SUPPRIMER, etc..

ConnexionsL'intéressant de ce type d'application est la possibilité de faire des connexions entre des technologies totalement différentes, par exemple nous pouvons avoir un service web écrit en Python pour nous faire l'inventaire d'une usine puis dans notre application en Java on s'y connecte pour connaître les quantités d'un produit.

Une telle facilité est ce qui a catapulté leur adoption rapide ces dernières années et a rendu standard l'offre de tels outils lorsqu'il s'agit de systèmes et d'applications d'entreprise. Même les applications personnelles telles que les blogs ou les forums offrent services Web pour faciliter la génération d'applications mobiles et que tout reste dans le même écosystème.

Ayant déjà vu un peu le sujet des services Web, voyons comment ils sont classés.

Services REST


Ces types de services permettent la transmission de données via HTTP, en utilisant uniquement les méthodes de ce protocole, généralement la communication ne nécessite que l'envoi de données soit par le biais de formulaires ou JSON, certains reçoivent même jusqu'à XML.

C'est le plus populaire du moment puisque la construction de clients pour la consommation est très simple et ne nécessite pas beaucoup de préparations supplémentaires. Simplement pour que notre client puisse lancer une demande AVOIR à une URL du service, nous pouvons commencer à l'utiliser ou à le consommer car l'action d'obtenir des données est également connue.

Services SOAP


Le service SAVON est beaucoup plus vieux que DU REPOS, et jusqu'à il y a quelques années, c'était le moyen standard de réaliser des applications de services Web, sa construction nécessite notamment de suivre certains protocoles et il est nécessaire de générer un fichier XML appelé WSDL, c'est là que sont définies les méthodes auxquelles le client peut accéder.

En raison de la grande complexité de préparer les clients à consommer ce type de service, sa popularité est en baisse, c'est pourquoi la plupart des nouvelles technologies ne le prennent pas en compte. Cependant, il existe encore de nombreux services qui existent dans le monde technologique et qui sont gérés sous cette modalité, donc même si elle tombe en désuétude, il faut encore savoir s'en servir.

La complexité de ce type de prestation réside dans la préparation des différents XML, et suivez à la lettre les normes selon les plateformes, ce type de raison est ce qui le rend lourd et donc les développeurs ont migré vers DU REPOS.

Créer un programme qui se connecte en utilisant TCP


Puisque nous avons lu et revu un peu plus en profondeur ce qui représente la partie théorique de ce qu'ils sont services Web, nous allons commencer la partie pratique de ce tutoriel en faisant un exercice très basique qui nous aidera à comprendre le déroulement des choses.

Nous allons établir une connexion simple depuis notre application via le réseau en utilisant TCP avec une équipe qui y est accessible et disponible, pour cela nous aurons besoin de connaître votre adresse IP et un port disponible et en dehors des restrictions des différents pare-feu.

ExigencesTout d'abord, nous allons exiger le paquet java.net.Socket cela nous donne une série d'outils qui vont nous faciliter la vie en établissant des connexions, évidemment l'exemple que nous montrons est très basique mais il nous donne la base pour pouvoir créer des choses au-delà en fonction de nos besoins.

Nous allons créer un programme qui essaie de se connecter à une machine via un port spécifique, mais ce programme évaluera également si une erreur ou une complication s'est produite pendant le processus de connexion, avec cela nous pouvons agir avec diligence et ne pas attendre un fatal échec Regardons le code de cet exemple :

 importer java.net.Socket; importer java.net.UnknownHostException ; importer java.net.NoRouteToHostException ; importer java.net.ConnectException ; public class ConnectionTest {public static void main (String [] argv) {String server = argv.length = = 1 ? argv [0] : "localhost" ; port int = 80 ; try (Socket sock = nouveau Socket (serveur, port)) {System.out.println ("- Connexion réussie à :" + serveur + "-"); } catch (UnknownHostException e) {System.err.println (serveur + "serveur inconnu"); revenir; } catch (NoRouteToHostException e) {System.err.println (serveur + "Hors de portée"); revenir; } catch (ConnectException e) {System.err.println (serveur + "Connexion refusée"); revenir; } catch (java.io.IOException e) {System.err.println (serveur + '' + e.getMessage ()); revenir; }}}
On commence par importer le package java.net.Socket avec ça on aura la classe Prise qui est celui que nous utiliserons plus tard pour établir la connexion, si nous ne lui passons pas d'argument lors de l'exécution du programme, il se connectera directement à notre ordinateur, dans ce cas nous indiquons le port 80, mais cela peut être un autre.

Nous plaçons la création de l'instance Prise dans un bloc essayer - attraper cela nous permet d'évaluer les exceptions si la connexion n'est pas réussie au lieu de terminer brusquement le programme. Enfin, nous avons différents blocs catch, chacun avec une exception différente pour nous donner une idée de ce qui s'est mal passé.

Pour que les exceptions fonctionnent on a vu qu'au début on importait le package java.net que nous allons utiliser dans cet exemple, voyons maintenant à quoi cela ressemble lorsque nous exécutons notre programme. Lors de l'exécution de notre programme, voyons dans l'image suivante comment nous avons pu accéder avec succès à notre routeur Wifi et notre hôte local:

Client pour un service REST


Dans cet exemple, nous allons créer un petit client de service Web qui se connectera à un serveur DU REPOS, pour cela nous n'avons besoin que d'un serveur qui puisse nous donner une réponse à la méthode AVOIR de HTTP, c'est pourquoi on peut utiliser freegeoip.net qui, selon ce que l'on passe par l'URL, peut retourner un JSON avec les données de n'importe quelle page Web que nous voulons.

Voyons le code que nous avons fait :

 importer java.net.URL; importer java.net.URLConnection ; importer java.io.BufferedReader ; importer java.io.InputStreamReader ; public class ClientRest {public static void main (String [] args) lève l'exception {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ()))) {String line; while ((ligne = is.readLine ())! = null) {System.out.println (ligne); }}}}
La première chose que nous faisons est d'importer les classes URL Oui URLConnexion, ceux-ci nous permettent d'abord de convertir une chaîne en une URL qui peut être interprétée par Java et deuxièmement, faites la bonne connexion. Ensuite, nous importons deux bibliothèques de classes qui nous permettent de manipuler les données que nous allons recevoir en réponse du service Web.

Enfin, nous effectuons notre connexion au service web de freegeoip.netDans ce cas, nous lui passons n'importe quelle page dont nous savons qu'elle existe, de cette manière nous pouvons obtenir un résultat, puis nous stockons la réponse dans un tampon, puis la lisons et la passons à un objet String, enfin nous imprimons le contenu et nous obtiendra quelque chose comme ce que nous voyons dans l'image suivante :

AGRANDIR

Bien sûr, il s'agit d'une approche simple pour pouvoir comprendre le fonctionnement des services Web, car elle ne couvre pas l'envoi de paramètres de notre client, mais pour cela, ils peuvent être documentés sur Client HTTP Apache, ce qui peut vous donner des outils supérieurs concernant la consommation de ce type de services Web, que nous laissons comme tâche.

Avec cela, nous avons terminé ce didacticiel, nous avons construit quelques programmes qui nous aident à nous mettre sur la bonne voie pour pouvoir maîtriser le services WebAvec cela, nous voyons déjà comment notre esprit va sûrement commencer à imaginer les meilleures utilisations de ces outils dans nos applications et ainsi rendre les choses beaucoup plus grandes.

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave