Bonjour à tous !
J'ai trouvé ici, un code source montrant comment utiliser HttpClient pour effectuer une requête Post et récupérer la réponse.
Je l'ai testé, il fonctionne. Je l'ai également un peu modifié (surtout commenté) et je me suis créé un petit formulaire de test. Et avec mon formulaire, ça ne fonctionne pas !
Voici mon code :
Code :
- import org.apache.commons.httpclient.HttpClient;
- import org.apache.commons.httpclient.methods.PostMethod;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- public class Test1 {
- public static void main(String args[]) {
- // On cree le client
- HttpClient client = new HttpClient();
- // On indique un nom d'User-Agent
- client.getParams().setParameter("http.useragent", "Test Client" );
- // Le HTTPMethod qui sera un Post en lui indiquant l'URL du formulaire
- PostMethod method = new PostMethod("http://www.pexiweb.be/tmp/tmp/test.html" );
- // On ajoute les parametres du formulaire
- method.addParameter("pseudo", "\"pyo\"" ); // (champs, valeur)
- // Le buffer qui nous servira a recuperer le code de la page
- BufferedReader br = null;
- try
- {
- // http://hc.apache.org/httpclient-3. [...] tatus.html
- int retour = client.executeMethod(method);
- System.out.println("La reponse de executeMethod est : " + retour);
-
- br = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream()));
- String readLine;
- // Tant que la ligne en cours n'est pas vide
- while(((readLine = br.readLine()) != null))
- {
- System.out.println(readLine);
- }
- }
- catch (Exception e)
- {
- System.err.println(e); // erreur possible de executeMethod
- }
- finally
- {
- // On ferme la connexion
- method.releaseConnection();
- if(br != null)
- {
- try
- {
- br.close(); // on ferme le buffer
- }
- catch (Exception e) { /* on fait rien */ }
- }
- }
- }
- }
|
Vous trouverez le code de mon formulaire en affichant le code source de ma page : http://www.pexiweb.be/tmp/tmp/test.html
Quelqu'un aurait une idée ?
Quelque chose qui pourrait être lié (mais je vois pas comment résoudre) : lorsqu'on teste 'http://search.yahoo.com/search' dans son navigateur, on est redirigé vers 'http://search.yahoo.com/web?fr='. Et lorsqu'on teste cette dernière URL dans le programme, cela ne fonctionne plus.
Merci d'avance pour votre aide ! :-)
---------------
Pyo