Je veux écrire le corps d'une requête avec un type de contenu XML mais je ne sais pas comment utiliser un objet HttpClient ( http://hc.Apache.org/httpclient-3.x/apidocs/index.html )
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpRequest = new HttpPost(this.url);
httpRequest.setHeader("Content-Type", "application/xml");
Et je ne sais pas comment continuer à écrire le corps avec mon XML ...
Si votre xml est écrit par Java.lang.String
vous pouvez simplement utiliser HttpClient
de cette façon
public void post() throws Exception{
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.baidu.com");
String xml = "<xml>xxxx</xml>";
HttpEntity entity = new ByteArrayEntity(xml.getBytes("UTF-8"));
post.setEntity(entity);
HttpResponse response = client.execute(post);
String result = EntityUtils.toString(response.getEntity());
}
faites attention aux exceptions.
BTW, l'exemple est écrit par le httpclient version 4.x
Étendre votre code (en supposant que le XML que vous voulez envoyer se trouve dans xmlString
):
String xmlString = "</xml>";
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpRequest = new HttpPost(this.url);
httpRequest.setHeader("Content-Type", "application/xml");
StringEntity xmlEntity = new StringEntity(xmlString);
httpRequest.setEntity(xmlEntity );
HttpResponse httpresponse = httpclient.execute(httppost);