httpclient在java中发布xml内容

时间:2012-07-09 19:01:02

标签: java xml apache-commons-httpclient

我正在尝试使用httpclient发布xml请求,如下所示:

String parm1 = MyXml.toString();
PostMethod post = new Postmethod(url);
post.setRequestEntity(new StringRequestEntity(parm1));
...

我在程序中有一个对象,我想将其转换为xml表示。

我的问题是在java中以xml格式创建Myxml的最佳方法是什么,然后我可以稍后打印出它的String格式。

感谢。

3 个答案:

答案 0 :(得分:0)

尝试以这种方式使用它......

public void postData() throws Exception {


 HttpClient client = new DefaultHttpClient();
 HttpPost httppost = new HttpPost("https://www.xyz.com");

 List<NameValuePair> list = new ArrayList<NameValuePair>(1);

 list.add(new BasicNameValuePair("name","ABC");

 httppost.setEntity(new UrlEncodedFormEntity(list));

 HttpResponse r = client.execute(httppost);

}

答案 1 :(得分:0)

在Java中创建XML有很多选择。这个答案How to serialize and de-serialize objects using JAXB?提供了一个似乎适合您的用例的一种常见方式的良好演示。

答案 2 :(得分:0)

以下是使用 Apache HttpClient发布xml请求的方法。

  • 使用apache Velocity创建请求xml格式
  • 使用Castor将响应流(respReader)转换为java对象

    final String request = createXmlRequest(); // helper method to create the xml request
    final HttpClient client = new HttpClient();
    final PostMethod post = new PostMehod(url); // url - www.google.cm/someoperaion
    
    post.setRequestHeader("Content-Language", "en-US");
    post.setRequestEntity(new StringRequestEntity(request, "text/xml", "ISO-8859-1"));
    
    final int returnCode = client.executeMethod(post);
    
    final BufferedReader respReader = new BufferedReader(new InputStreamReader(post.getResponseBodyAsStream()));