Find Jobs
Hire Freelancers

Programmation réseau avec JSON

$10-30 USD

Imefungwa
Imechapishwa over 5 years ago

$10-30 USD

Kulipwa wakati wa kufikishwa
proposez un service distant qui fonctionne en deux phases. À la connexion, le client fournit son nom et sa date de naissance. Ensuite, le client peut demander au serveur le jour (lundi, mardi, etc.) de sa naissance ou son age. Il reçoit alors une chaîne en guise de réponse, indiquant « Toto, tu es né(e) un ... » ou « Toto, tu as XX ans » . Le client peut également clore la connexion. Pour gérer les calculs de date, nous proposons d'utiliser l'API Joda time, livrée avec le JDK 1.8. Pour initialiser une date donnée, il suffit d'écrire : LocalDate date=[login to view URL]("xx/xx/xxxx",[login to view URL]("d/M/uuuu")); Pour trouver le jour correspondant, il suffit d'écrire : DayOfWeek day=[login to view URL](); String dayname=[login to view URL]([login to view URL],[login to view URL]); Un age peut se récupérer immédiatement : int age=[login to view URL](date,[login to view URL]()).getYears(); Pour la requête de connexion, il faut fournir à la fois un nom, mais aussi une date : pour le transfert d'information, on utilisera une classe dédiée à la date, contenant trois entiers (day,month,year). En particulier, on n'utilisera pas de type Java prédéfini (type Date, Calendar ou LocalDate), car ces données sont complexes et empêcheront l'utilisation d'autre environnement que Java. Une fois la connexion établie, le dialogue est assez simple : les requêtes n'ont pas de paramètres et les réponses sont toujours sous la forme d'une chaîne de caractères. Pour transférer les données, nous n'utiliserons pas la sérialisation de Java, mais utiliserons le codage JSON plutôt. Pour cela, il faut incorporer la bibliothèque gson de Google (.jar fourni sur UPdago) dans votre code afin de transférer vos données entre le client et le serveur. La conversion fonctionne de la manière suivante : import [login to view URL]; import [login to view URL]; … Gson gson = new GsonBuilder().setPrettyPrinting().create(); // setPrettyPrinting() optionnel String s=[login to view URL](unobjet); // Convertit un objet en chaîne JSON UneClasse unobjet=[login to view URL](s,[login to view URL]); // Convertit une chaîne JSON en objet Attention, concernant cette dernière ligne, l'objet construit est une instanciation uniquement de la classe donnée en paramètre (UneClass), même si c'est un objet d'une sous-classe qui a été envoyé1 ; les attributs supplémentaires trouvés dans la chaîne JSON sont tout simplement ignorés. Si on veut prendre également en compte les attributs de la sous-classe, il faut ré-appeler la conversion, avec comme second paramètre la sousclasse. Les données JSON à transmettre étant nécessairement des chaînes de caractères, nous pouvons opter pour deux solutions pour les faire transiter dans la socket. Il n’est pas question ici d’utiliser la sérialisation de la classe String puisque la transmission serait cantonnée aux applications Java. Nous transmettrons une chaîne à un format standard, sous la forme d’une série d’octets (un octet par caractère), la longueur du message étant la longueur de la chaîne (sa taille n’est donc pas transmise). Afin de gérer de façon transparente les caractères accentués et non ASCII en général, nous utiliserons l’encodage UTF-8. La première solution, bas niveau, repose sur l’utilisation de buffer d’octets et utilise directement les flux de base InputStream et OutputStream sans encapsulation dans des flux plus puissants. On utilisera les transformations suivantes (voir exemple de base dans le cours) : byte[] buffer=[login to view URL]("UTF-8"); // codage de s en une série d'octets codés en UTF-8 s=new String(buffer,0,size,"UTF-8"); // Reconstruction à partir d'une série d'octets
Kitambulisho cha mradi: 18090855

Kuhusu mradi

pendekezo 1
Mradi wa mbali
Inatumika 5 yrs ago

Unatafuta kupata pesa?

Faida za kutoa zabuni kwenye Freelancer

Weka bajeti yako na muda uliopangwa
Pata malipo kwa kazi yako
Eleza pendekezo lako
Ni bure kujiandikisha na kutoa zabuni kwa kazi
1 mfanyakazi huru ana zabuni kwa wastani $25 USD kwa kazi hii
Picha ya Mtumiaji
Bonjour, Il y a 4 ans, j'ai eu à réaliser un exercice similaire à l'école (42) en C. On avait 2h pour le faire. Si j'avais à le refaire en totale liberté, je le ferais plutôt en JS ou en PHP pour la facilité et la rapidité. Mais si vous avez absolument besoin que ce soit fait en Java, aucun souci, je peux aussi.
$25 USD ndani ya siku 1
5.0 (1 hakiki)
2.2
2.2

Kuhusu mteja

Bedera ya MOROCCO
Casablanca, Morocco
0.0
0
Mwanachama tangu Jan 1, 2018

Uthibitishaji wa Mteja

Asante! Tumekutumia kiungo cha kudai mkopo wako bila malipo kwa barua pepe.
Hitilafu fulani imetokea wakati wa kutuma barua pepe yako. Tafadhali jaribu tena.
Watumiaji Waliosajiliwa Jumla ya Kazi Zilizochapishwa
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Onyesho la kukagua linapakia
Ruhusa imetolewa kwa Uwekaji wa Kijiografia.
Muda wako wa kuingia umeisha na umetoka nje. Tafadhali ingia tena.