Envoi d'un tableau par requête POST
Bonjour à tous !
Voilà je souhaiterais envoyer un tableau par requête POST en java.
En parcourant la FAQ je suis tombé sur ceci expliquant comment réaliser une requête POST en Java ce qui répondait à mon problème.
J'ai juste un petit soucis c'est que la solution proposée correspondrait à un formulaire avec les paramètres suivants : {"clefA" => "valeurDeClefA", "clefB" => "valeurDeClefB"}.
Or j'ai un formulaire avec les paramètres suivants : {"clefC" => {"clefA" => "valeurDeClefA", "clefB" => "valeurDeClefB"}}.
J'ai essayé naïvement le code suivant :
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
| public void doPost(String adresse){
OutputStreamWriter writer = null;
BufferedReader reader = null;
try {
//encodage des paramètres de la requête
//Il n'y a que cette partie qui diffère de la FAQ
String donnees = URLEncoder.encode("clefC", "UTF-8") + "={" + URLEncoder.encode("clefA", "UTF-8") +
"=" + URLEncoder.encode("valeurDeClefA", "UTF-8") + "&" + URLEncoder.encode("clefB", "UTF-8") +
"=" + URLEncoder.encode("valeurDeClefB", "UTF-8") + "}";
//création de la connection
URL url = new URL(adresse);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
//envoi de la requête
writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(donnees);
writer.flush();
//lecture de la réponse
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String ligne;
while ((ligne = reader.readLine()) != null) {
System.out.println(ligne);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try{writer.close();}catch(Exception e){}
try{reader.close();}catch(Exception e){}
}
} |
Sans succès...
Ma question est donc la suivante, comment faire passer un tableau dans une requête POST en Java ?
Merci d'avance.