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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);