Problème d'envoi de deux requêtes HTTP 1.1 dans un même socket
Bonjour à tous,
Pour un besoin spécifique j'essaye d'envoyer deux requêtes HTTP 1.1 post à un serveur dans une même connection socket.
Mon problème est que j'obtient une réponse pour la première requête mais aucune réponse pour la deuxième requête sachant que j'ai bien mis la connection Connection: Keep-Alive dans le header.
Je ne trouve pas le problème surtout que je n'ai aucune erreur dans le log mais le retour contient seulement la réponse pour la première requête
Si quelqu'un a d'idée à ce propos qu'il l'éclairci svp et merci d'avance
Voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
Socket socket = new Socket(addr, port);
String strRequest1="myxmlRequest1....";
//send request
wr.write("POST / HTTP/1.1\r\n");
wr.write("Host: HOST\r\n");
wr.write("User-Agent: Java\r\n");
wr.write("Content-Length: " + strRequest1.length() + "\r\n");
wr.write("Content-Type: text/xml\r\n");
wr.write("Connection: Keep_alive\r\n\r\n");
wr.write(strRequest1 +"\r\n");
wr.flush();
// Get response
rd = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "UTF8"));
System.out.println( "BufferedReader rd------------------------------>" + rd);
System.out.println( "readLine------------------------------>" + rd.toString());
while ((line = rd.readLine()) != null) {
System.out.println("output---------->" + output);
output = output + line + "\n";
}
System.out.println("taille response" + output.length());
// Request 2
String s2="myxmlRequest2...";
//send request
BufferedWriter wr2 = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream(), "UTF8"));
System.out.println(s2);
wr2.write("POST / HTTP/1.1\r\n");
wr2.write("Host: HOST\r\n");
wr2.write("User-Agent: Java\r\n");
wr2.write("Content-Length: " + s2.length() + "\r\n");
wr2.write("Content-Type: text/xml\r\n");
wr2.write("Connection: Close\r\n\r\n");
wr2.write(s2 + "\r\n");
wr2.flush();
// get response
BufferedReader rd2 = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "UTF8"));
output="";
while ((line = rd2.readLine()) != null) {
System.out.println("output2---------->" + output);
output = output + line + "\n";
}
System.out.println("s2 response" + output.length()+"s2"+output); |