Find Jobs
Hire Freelancers

Programmation réseau avec JSON

$10-30 USD

Cerrado
Publicado hace más de 5 años

$10-30 USD

Pagado a la entrega
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 del proyecto: 18090855

Información sobre el proyecto

1 propuesta
Proyecto remoto
Activo hace 5 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos
1 freelancer está ofertando un promedio de $25 USD por este trabajo
Avatar del usuario
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 en 1 día
5,0 (1 comentario)
2,2
2,2

Sobre este cliente

Bandera de MOROCCO
Casablanca, Morocco
0,0
0
Miembro desde ene 1, 2018

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.