-
Client serveur en Java
Bonjour,
je cherche à envoyer une requete HTTP d'un client vers un serveur en JAVA, pouvez vous me donner le code coté client et serveur ? tout ce que je trouve sur net est incompréhensible pour moi je suis tres tres débutant en programmation JAVA et j'essaies de m'ameliorer.
PS: mon IDE c'est netbeans sous un S.E Linux.
Merci.
-
Salut,
Et pour commencer, le tutoriel suivant : http://humbert-florent.developpez.co...u/avance/#LIII (voir Socket et ServerSocket)
-
salut merci pour votre réponse. je vais le voir :)
-
Question s.v.p, est ce qu'on peut volontairement changer le header de la requete HTTP ?
-
On peut bien entendu mettre les headers que l'on veut, puisqu'on écrit ce qu'on veut dans le flux. Maintenant, c'est quoi que tu cherches à faire : écrire un petit couple client/serveur http pour l'exercice, ou faire une application client/serveur http ?
Si tu veux vraiment faire une application client / serveur en http, peut-être est-ce vers des solutions plus clefs en main que tu devrais te diriger. Donc prendre un serveur existant comme tomcat. Et y accèder par HttpUrlConnection, voire en utilisant la bibliothèque httpclient.
-
merci beaucoup pour ces informations, ce que je veux faire exactement c'est envoyer une requete simple par un client web, puis mettre en place un proxy qui va jouer le role d'un ISP (fornisseur de service) pour modifier l'entete de cette requete par l'ajout d'un ID par exemple (plus précisement dans le champ paylaod) et une fois le serveur (tomcat) reçoit cette requete il détecte qu'il ya une modification et nous informe de ça.
j'espere que j'ai bien expliqué la situation et j'ai vraiment besoin d'aide comment je peux faire ça. Merci
-
Ok, tu veux simuler un petit proxy pour faire les tests de ce dont tu parlais sur un autre post.
Dans ce cas, un couple socket/serverSocket devrait suffire. Si c'est pour du test, tu peux le faire à l'arrache et ça ne te prendra pas beaucoup de temps : commence par traiter le flux directement (ce qui vient du client tu l'envoies vers le serveur (et inversement)). Ce qui te permet de tracer les octets qui passent : tu vas ainsi voir le contenu des requêtes (leur structure) : tu pourras en déduire comment insérer un header dans le flux.
-
j'ai essayé de comprendre ce que vous venez de dire mais j'y arrive pas :/ tout ça c'est nouveau pour donc je vous prie d'étre patient avec moi et m'expliquer les étapes de faire le travail en détails, si vous avez du temps biensure.
et merci beaucoup pour la réponse.
le but du travail: envoyer une requete http de la part du client => modification de l'entete par le proxy qui se trouve entre le client et le serveur => le serveur detecte qu'il y'a un changement au niveau de l'entete et petit message sera affiché.
-
Un proxy, c'est, en gros, un programme qui se comporte en serveur vis-à-vis d'un client, et en client vis-à-vis d'un serveur, et qui a pour but de transférer au serveur la requête qui lui est envoyée par le client. La requête correspond à des octets qui sont transférés : ces octets correspondent aux informations transférées (les headers, le body, etc...).
Donc, tu vas écrire (en suivant l'exemple donné dans le lien que je t'avais donné), ouvrir un flux d'une socket obtenue par un serverSocket.accept(), lire ce flux, octet par octet, ou par chunks (buffer), et écrire ce que tu lis dans le stream d'une socket ouverte vers l'url finale, celle du serveur.
Et bien, si tu traces ces octets lus et écrit (si tu les écrit dans la console), tu verras ce qui est transféré. Tu pourrais prendre aussi la doc du protocole http (des rfc tout ça), mais c'est bien plus clair et formateur de le voir sur un exemple qui fonctionne et qu'on peut bidouiller à loisir. A partir du moment où tu auras vu comment sont écrits les headers dans le flux, tu seras en mesure d'imaginer un moyen d'insérer facilement est très vite un header en dur (il ne s'agit pas pour toi de faire un vrai proxy).
-
Merci joel pour ces informations, désormais je comprends mieux la situation, je vais essayer d'accomplir le travail et je vous mets au courant.
-
Bonjour, j'ai réussi à comprendre le concept des sockets et comment établir ma première connexion entre un serveur et un client et aussi comment envoyer et recevoir des messages :aie: .
Maintenant j'aimerais savoir comment on peut programmer un proxy (qui dans mon cas va joué le role d'un fournisseur de service) qui lit la requete http envoyé par le client, octet par octet comme vous m'avez dit précédement, modifier le header sans changer le contenu de la requete évidement. pouvez vous m'aider ?
PS:merci pour le tuto et les autres informations je me sens plus à l'aise avec le travail à faire.