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 : 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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.x/apidocs/org/apache/commons/httpclient/HttpStatus.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 ! :-)