Bonjour à tous,
En fait je cherche à créer une requête de type POST dont le contenu doit avoir un certain format afin d’interroger un serveur mais j'y arrive pas.

Voici le format du contenu de la requête :
  1. un Long
  2. un Int et
  3. une chaîne au format JSON encodée en UTF-8


et voilà ce que j'ai tenté :

Code java : 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
 
                                SocketChannel sc = SocketChannel.open();
		                sc.connect(new InetSocketAddress("adresse du serveur", port));
                                Charset acii = Charset.forName("ASCII");
 
                                String chaineToPost = "{\n" 
                                                + " \"Id\"" + ":" + " " + "\"" + "1000" + "\",\n"
		        			+ " \"Version\"" + ":" + " " + "\"" + "1.0" + "\",\n"
				        	+ " \"url\"" + ":" + " " + "\"" + "adresse du server" + "\",\n"
						+ " \"classe\"" + ":" + " " + "\"" + "object" + "\",\n"
					        + " \"num\"" + ":" + "	" + "\"" + "100" + "\",\n"
						+ " \"Clien\"" + ":" + " " + "\"" + "nomClient" + "\",\n"
						+ " \"reponse\"" + ":" + " " + "ok" + "\n"
						+ "}";
		        	String post = "POST HTTP/1.1\r\n"
		        			+ "Host: adresse du server\r\n"
		        			+ "Content-Type: application/json\r\n"
		        			+ "Content-Length: 2000\r\n"
		        			+ "\r\n";
		        	ByteBuffer bf = ByteBuffer.allocate(1024);
		        	bf.put(acii.encode(post));
		        	bf.putLong(120);
		        	bf.put(acii.encode("\r\n"));
		        	bf.putInt(65);
		        	bf.put(acii.encode("\r\n"));
		        	bf.put(Charset.forName("UTF-8").encode(chaineToPost));
		        	bf.put(acii.encode("\r\n"));
		        	bf.put(acii.encode("\r\n"));
                                bf.flip();
		        	sc.write(bf);
Après l'envoi de la requête j'essaie de lire la réponse du serveur mais je reçois rien.Donc je conclue que c'est ma requête qui est mal faite puisque j'ai essayé avec "GET" et ça a marché.
Merci d'avance!