Snippet #7 ~ JAVA Faire une requete http en POST et en GET

il peut être intéressant dans un programme Java Se, de savoir effectuer une requête vers le web (en GET ou en POST), voiçi deux petites méthodes tirées de ma classe HttpTools perso qui peuvent vous être utiles :

 

Appel d’une page en GET :


la méthode s’utilise très simplement :

String retourDeLaPage = get(“http://www.perdu.com”);

Si vous souhaitez ajouter des paramètres, il suffit de les inclure dans l’url (étant donné qu’il s’agit du requête GET) :

String retourDeLaPage = get(“http://www.perdu.com?pseudonyme=Idleman&pasword=danstesreves”);

public static String get(String url) throws IOException{

String source ="";
URL oracle = new URL(url);
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;

while ((inputLine = in.readLine()) != null)
source +=inputLine;
in.close();
return source;
}

Appel d’une page en POST:

public static String post(String adress,List<String> keys,List<String> values) throws IOException{
String result = "";
OutputStreamWriter writer = null;
BufferedReader reader = null;
try {
//encodage des paramètres de la requête
String data="";
for(int i=0;i<keys.size();i++){
if (i!=0) data += "&";
data +=URLEncoder.encode(keys.get(i), "UTF-8")+"="+URLEncoder.encode(values.get(i), "UTF-8");
}
//création de la connection
URL url = new URL(adress);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);


//envoi de la requête
writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(data);
writer.flush();




//lecture de la réponse
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String ligne;
while ((ligne = reader.readLine()) != null) {
result+=ligne;
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try{writer.close();}catch(Exception e){}
try{reader.close();}catch(Exception e){}
}
return result;
}

la méthode s’utilise très simplement :

List<String> keys = new ArrayList<String>();

List<String> values= new ArrayList<String>();

keys.add("pseudonyme");

keys.add("password");

values.add("idleman");

values.add("danstesreves");

String retourDeLaPage = post("http://www.perdu.com",keys,values);

 

 

7 réactions au sujet de « Snippet #7 ~ JAVA Faire une requete http en POST et en GET »

  1. Clem4541 Réponse

    Ça peut servir pour la recherche de mise à jour d application en mettant en ligne le numéro de la dernière version et pouvoir faire une comparaison

  2. Idleman Auteur ArticleRéponse

    Tu parle pour andrhome ? Tu en es ou la dessus? Je sais je suis un peu a la traine mais je cherche désespérément du boulot sur bx du coups je suis plus trop concentré sur mes projets ^^

        • Idleman Auteur ArticleRéponse

          Ça dépend aussi de ton historique de navigation, les recherches ne sont pas générique, donc Google à du voir que tu était déjà passé par ici et m’a surclassé en fonction de ton historique (comment ça ça file des frissons leurs recherche personnalisée ? :D).

          Mais bon oui je suis content mon pagerank à quand même pas mal enflé ces derniers mois, c’est agréable de savoir son contenu un minimum relayé :p

  3. Renaud Réponse

    Bonjour,
    ce petit bout de code est intéressant à stocker dans un coin, mais il faudrait rectifier le séparateur des paramètres de & en un simple &, sinon lors d’un request.getParameterMap() ou d’un request.getParameter(key), on aura dans le nom de la clé la fin du sépateur, à savoir “amp;”.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.