Java connection http

Résolu/Fermé
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 - 16 oct. 2011 à 17:33
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 - 20 oct. 2011 à 15:22
Bonjour,

je voudrais trouver un exemple simple sur java avec une connection http en fait je voudrais quelque chose comme ca.

Mon but c'est d'envoyer plusieurs donnees dans un meme port.(donc quelque chose dans le genre ("http://localhost/servlet?cle1=valeur1&cle2=valeur2");)

j'ai trouve ceci sur google, mais je trouve pas des exemple que je pourrais tester.


Merci pour l'aide


/** Envoi de données par GET */
URL url = new URL("http://localhost/servlet?cle1=valeur1&cle2=valeur2");
URLConnection conn = url.openConnection();


/** Envoi de données par POST */
URL url = new URL("http://localhost/servlet");
String data = "cle1=valeur1&cle2=valeur2");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
osw.write(data);
osw.flush();
osw.close();




/** Récupération de la réponse de la servlet */
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
/** traitement des lignes */
} br.close();


Pour envoyer la réponse à partir de la servlet, il suffit d'utiliser l'OutputStream de l'HttpServletResponse.




/** Réponse de la servlet */
String texte = "...";
PrintStream out = new PrintStream(response.getOutputStream());
out.println(texte);
out.close();


Remarque: pour le passage des données (clés ou valeurs), si des caractères spéciaux sont employés, utiliser URLEncoder :






cle1 = URLEncoder.encode(cle1, "UTF-8")



A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
16 oct. 2011 à 23:18
Pour tester il te faut un serveur qui gère les servlets (Tomcat par exemple).
Voici un exemple de code qui envoie deux mots, et récupère la concaténation des deux.

1) Le JavaScript fait une requête Get, il envoie les deux mots :

var req;

function envoieRequete(mot1,mot2)
{
    req = new XMLHttpRequest();
    req.onreadystatechange = attendreReponse;
    req.open("Get","/MaServlet?mot1="+mot1+"&mot2="+mot2,true);
    req.send(null);
}

2) La servlet sur le serveur attend la requête, récupère les deux mots, fait la concaténation, et l'envoie en réponse:

public class MaServlet extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    {
        String mot1 = req.getParameter("mot1");
        String mot2 = req.getParameter("mot2");
        
        String rep = mot1+mot2;
        
        res.setContentType("text/plain");
        res.setHeader("Cache-Control","no-cache");
        res.getWriter().write(rep);
    }
}

3) Et enfin le script reçoit la réponse et l'affiche :

function attendreReponse()
{
    if (req.readyState==4 && req.status==200)
    {
        alert(req.responseText);
    }
}
0
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 9
16 oct. 2011 à 23:23
salut merci de repondre mon but cest d<envoyer des donnee sur un meme port on ma dis que cest quelque chose de simple mais je le jamais vue on ma dis que javais juste a rentrer

le port
le http://localhost:8908 apres je definis mes variables les quelles je pourrais visualiser en ecribant dans mon navigateur internet http://localhost:8908 ...

merci de repondre
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 16/10/2011 à 23:46
C'est toi qui parlait de servlet avec ton http://localhost/servlet?cle1=valeur1&cle2=valeur2
Elles sont utilisées dans des sites web, mais ce n'est peut-être pas vraiment ton problème...
Peut-être qu'une manipulation de sockets te suffiront, regarde Les accès au réseau
Mais si tu donnais plus d'informations sur ce que tu veux faire exactement ce serait plus facile de t'aider, car en Java on peut faire beaucoup de choses !!!
0
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 9
16 oct. 2011 à 23:49
oui les sockets mais si jutilise les sockets je peut juste envoyer des donnees une a la fois alors que je veux envoyer deux donneee ou plus sur le meme port.

je vais regarder le link voir si je trouve qqch

merci
0
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 9
16 oct. 2011 à 23:50
on mavait dis quil y avait une classe http que je dois utiliser
0
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 9
16 oct. 2011 à 23:53
tous ce que je veux ce envoyer des donnee sur un meme port en java

je dois utiliser
http://localhost:numeroDuPOrt avec quelque chose ????

merci pour laide
0