I want to write the body of a request with XML content-type but I don't know how with HttpClient Object ( 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");
And I don't know how to continue to write the body with my XML ...
you can't send a body with a GET request, not with HttpClient or WebClient or anything else. but even if you manage to do it at low level, the server won't parse the body anyways because it will treat it as a GET request.
If your xml is written by java.lang.String
you can just using HttpClient
in this way
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()); }
pay attention to the Exceptions.
BTW, the example is written by the httpclient version 4.x
Extending your code (assuming that the XML you want to send is in 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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With