|
L?API HttpClient du projet Apache Jakarta Commons permet l?exploitation du protocole HTTP. Parmi ses nombreuses fonctionnalit?es, nous allons nous int?resser ? la soumission de formulaires HTTP, ici avec la m?thode POST. Vous remarquerez que l?API supporte l?encapsulation SSL.
Le code va ici afficher sur la sortie standard le corps de la r?ponse du serveur web. Il est ?galement tout ? fait possible de r?cup?rer l?en-t?te de la r?ponse (headers) et le code de status (404 pour les pages inexistantes, 500 pour les erreurs du serveur...).
Vous aurez besoin d?inclure les librairies Commons HttpClient et Commons Logging dans votre CLASSPATH pour compiler et ex?cuter le code suivant.
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
/** * @author Fr?d?ric Chuong * @version 0.1 */
public class Post {
public static void main(String[] args) {
HttpClient client = new HttpClient();
// Adresse du formulaire ? soumettre
PostMethod method = new PostMethod("https://learningcenter-sai.sun.com/gui/ito/generic_SideMenu.jsp");
// Champs du formulaire ? renseigner
method.addParameter("userId", "John");
method.addParameter("userPassword", "John");
method.addParameter("id", "1");
method.addParameter("state", "1");
try {
client.executeMethod(method);
String body = method.getResponseBodyAsString();
// Il est aussi possible de r?cup?rer le r?sultat sous
// forme de flux InputStream avec getResponseBodyAsStream()
System.out.print(body);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// Lib?ration des ressources
method.releaseConnection();
}
}
}
Plus d?informations sur HttpClient
|