HttpClient : problème de requête POST
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:
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 ! :-)