Enchainer des requetes http dans un client java [Résolu]

Messages postés
10
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
19 mai 2005
- - Dernière réponse : cs_amel2006
Messages postés
83
Date d'inscription
samedi 21 janvier 2006
Dernière intervention
9 décembre 2006
- 1 mars 2006 à 10:33
Bonjour a tous.
J'essaye de developper un client java pour envoyerdes requetes HTTP à un serveur JBOSS.
Ce qui coince, c'est qu'à partir de la seconde requete, je ne recois plus de reponse de la part du serveur. Pourtant, la premiere requete me renvoit bien la bonne reponse et si j'inverse l'ordre des requetes, c'est la meme chose, c'est à dire que je recois la reponse de la premiere, mais toujours pas de la deuxieme.
Le probleme ne vient donc certainement pas de mes requetes, mais peut-etre bien de la connection qui est faite via une socket.
J'ai ajouté les champs Keep-Alive et Connection dans les entetes de mes requetes, mais cela ne change rien.
Je vous en prie, si quelqun a une idée, ca me debloquerait beaucoup.
Merci

Voici les requetes que j'envoie au serveur:
1ere requete:
POST /ixp/LoginServlet HTTP/1.1
Host: 192.168.1.180
Accept: */*
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 33

login=tallystick&password=manager

2eme requete:
GET /ixp/jsp/tsoperator/CreateUser.jsp;jsessionid=2F1058572EB5C7C...51 HTTP/1.1
Accept: */*
Host: 192.168.1.180
Keep-Alive: 300
Connection: keep-alive
Cookie: JSESSIONID=2F1058572EB5C7C227507B20101C4F51

Pour la connection, j'utilise bien sur qu'une seule socket et deux buffers.

les buffers sont initialises tels que :
rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));

Voici le code pour envoyer mes requetes :

static boolean sendRequest(Socket socket, String header, String body)
{
try
{
// Send Message
wr.write(header + body);
wr.flush();
}
catch(Exception e){return false;}
return true;
}

Voici le code pour recuperer les réponses du serveur :

static String getResponse(Socket socket)
{
String response=new String("");
try
{
//Get Response
String line=new String("");
//String vide=new String(""); //while ((line rd.readLine()) null) System..println("bloqué dans la boucle");
// response+=line;
while ((line = rd.readLine()) != null) {
response+=line;
}
//rd.close();
}
catch(Exception e)
{
System.out.println("erreur de reception du message");
return "error";
}
return response;
}

J'insiste sur le fait que les requetes marchent independemment les unes des autres, mais que c'est bien le fait d'en faire plusieurs a la suite qui pose probleme

Merci

Squezzyb
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
10
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
19 mai 2005
3
Merci
Bonjour,

j'ai finalement reussi a resoudre le pb hier soir.

Cela venait du fait que pour recuperer une reponse, je lisais dans le
bufferedReader tant que la ligne lue n'était pas égale a null. Or, tant
que la socket est ouverte, la réponse n'est pas égale à null. Donc en
gros, j'attendais que la socket se ferme pour envoyer la seconde
requete;)

Maintenant, je lis dans le buffer tant que la ligne n'est pas égale à
qqch dont je sais qu'il y sera (en l'occurrence "</html>"), et ca
marche parfaitement.

Squezzyb

Merci squezzyb 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de squezzyb
Messages postés
17
Date d'inscription
samedi 7 mai 2005
Dernière intervention
18 mai 2005
0
Merci
et qu'est ce que tu as comme probleme lorsque tu envois les 2 requetes d'affilees?
Commenter la réponse de bjdc
Messages postés
83
Date d'inscription
samedi 21 janvier 2006
Dernière intervention
9 décembre 2006
0
Merci
bonjour;
pouvez vous m'aider j'ai un problème que tu là déja passer
mon problème est de j'établie la connection avec le serveur et il accept mais le fait que j'envoie une requete il me repond pas
merci de votre aide
Commenter la réponse de cs_amel2006

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.