En Java, Comment composer un message de requête HTTP et l'envoyer à un serveur Web HTTP?
Réponses
Trop de publicités?Vous pouvez utiliser java.net.HttpUrlConnection.
Ou peut-être que ce lien est plus facile à lire:
http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139
Si Java Almanach est, essayez ce un.
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL yahoo = new URL("http://www.yahoo.com/");
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
Apache HttpComponents. Les exemples pour les deux modules - HttpCore et HttpClient vous permettra de commencer tout de suite.
Non pas que HttpUrlConnection est un mauvais choix, HttpComponents utilisera beaucoup de fastidieux de codage. Je le recommande, si vous voulez vraiment soutenir beaucoup de serveurs HTTP/les clients avec un minimum de code. Par la voie, HttpCore pourrait être utilisé pour les applications (clients ou serveurs) avec un minimum de fonctionnalités, tandis que HttpClient doit être utilisé pour les clients qui requièrent une prise en charge de plusieurs systèmes d'authentification, le support des cookies, etc.
Cela vous aidera. N'oubliez pas d'ajouter le JAR HttpClient.jar
au classpath.
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class MainSendRequest {
static String url =
"http://localhost:8080/HttpRequestSample/RequestSend.jsp";
public static void main(String[] args) {
//Instantiate an HttpClient
HttpClient client = new HttpClient();
//Instantiate a GET HTTP method
PostMethod method = new PostMethod(url);
method.setRequestHeader("Content-type",
"text/xml; charset=ISO-8859-1");
//Define name-value pairs to set into the QueryString
NameValuePair nvp1= new NameValuePair("firstName","fname");
NameValuePair nvp2= new NameValuePair("lastName","lname");
NameValuePair nvp3= new NameValuePair("email","email@email.com");
method.setQueryString(new NameValuePair[]{nvp1,nvp2,nvp3});
try{
int statusCode = client.executeMethod(method);
System.out.println("Status Code = "+statusCode);
System.out.println("QueryString>>> "+method.getQueryString());
System.out.println("Status Text>>>"
+HttpStatus.getStatusText(statusCode));
//Get data as a String
System.out.println(method.getResponseBodyAsString());
//OR as a byte array
byte [] res = method.getResponseBody();
//write to file
FileOutputStream fos= new FileOutputStream("donepage.html");
fos.write(res);
//release connection
method.releaseConnection();
}
catch(IOException e) {
e.printStackTrace();
}
}
}