/**
* Methode permettant d'envoyer une requete HTTP à une URL en passant par un proxy
* avec des parametres et
* permettant de récupérer le flux de reponse.
*
*@Param String adresse URL distante
*@Param String parametre1
*@Param String parametre2
*/public void EnvoyerRequetePost(String adresse, String param1, String param2){
OutputStreamWriter writer = null;
BufferedReader reader = null;
try {
// on precise le nom du proxy utilisé pour se connecter
// à l'url distante, ainsi que le port.
Properties prop = System.getProperties();
prop.put("http.proxyHost","192.168.0.100");
prop.put("http.proxyPort","80");// Constitution de la requete
//encodage des paramètres de la requête - l'utilisatation de StringBuffres serait plus appropriées
String donnees = URLEncoder.encode("param1", "UTF-8")+ "="+URLEncoder.encode("valeur1", "UTF-8");
donnees += "&"+URLEncoder.encode("param2", "UTF-8")+"=" + URLEncoder.encode("valeur2", "UTF-8");//création de la connection à l'adresse distante
URL url = new URL(adresse);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
//envoi de la requête à l'adresse distante
writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(donnees);
writer.flush();//lecture de la réponse et ecriture dans la log
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String ligne;
while ((ligne = reader.readLine()) != null) {
System.out.println(ligne);
}
}catch (Exception e) {
// affichage de la trace en cas d'exception
e.printStackTrace();
}finally{
try{
writer.close();
}
catch(Exception e){}
try{
reader.close();
}
catch(Exception e){}
}
}