Find Jobs
Hire Freelancers

Programmation réseau avec JSON

$10-30 USD

Mbyllur
Postuar over 5 years ago

$10-30 USD

Paguhet në dorëzim
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
ID e Projektit: 18090855

Rreth projektit

1 propozim
Projekt në distancë
Aktive 5 yrs ago

Po kërkoni të fitoni para?

Përfitimet e ofertës për Freelancer

Vendosni buxhetin dhe afatin tuaj
Paguhuni për punën tuaj
Përshkruani propozimin tuaj
Është falas të regjistrohesh dhe të bësh oferta për punë
1 freelancer is bidding on average $25 USD for this job
Avatari i Përdoruesit
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 në 1 ditë
5,0 (1 review)
2,2
2,2

Rreth klientit

Flamuri i MOROCCO
Casablanca, Morocco
0,0
0
Anëtar që nga jan 1, 2018

Verifikimi i klientit

Faleminderit! Ne ju kemi dërguar me email një lidhje për të kërkuar kredinë tuaj falas.
Ndodhi një gabim gjatë dërgimit të email-it tuaj. Ju lutemi provoni përsëri.
Përdorues të regjistruar Punë të postuara
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Po ngarkohet shikimi paraprak
Leja u dha për Geolocation.
Seanca e hyrjes ka skaduar dhe ke dalë. Hyr sërish.