我需要使用java生成HTTP POST请求,请求格式在
之下 <request version="3.9" principal="c1Prov" credentials="c1Prov">
<target name="UserAPI" operation="createUser">
<parameter>
<user>
<name><SUBSCRIBER_ID></name>
<login-name><SUBSCRIBER_LOGIN_ID></login-name>
<password>
<value><SUBSCRIBER_PASSWORD></value>
</password>
<organization>
<qualified-name>/BTCL_FIXED/<WHOLESALE_ORG_NAME></qualified-name>
</organization>
<account><name><SUBSCRIBER_ACCOUNT></name></account>
<profile-set>
<qualified-name>/BTCL_FIXED/<FIXED_PROFILE_SET_NAME></qualified-name>
</profile-set>
</user>
</parameter>
</target>
</request>
我尝试了下面的代码,但它没有打印任何东西。 我这样做的方法是否正确? 2.为什么不打印任何东西?
HttpClient httpClient = new HttpClient();
HttpPost post = new HttpPost("http://www.baidu.com");
String xml = "<target name=\"DomainAPI\" operation=\"createDomain\"><parameter><domain><name><DOMAIN_NAME></name><owning-organization><qualified-name>/BTCL_FIXED</qualified-name></owning-organization><profile-set><qualified-name>/BTCL_FIXED/Wholesale Fixed Dom PS</qualified-name><type>domain</type></profile-set></domain></parameter></target>";
HttpEntity entity = new ByteArrayEntity(xml.getBytes("UTF-8"));
post.setEntity(entity);
System.out.println(post.Entity());
答案 0 :(得分:1)
entity = post.getEntity().getContent()
- 您将获得一个实体的InputStream。
从中获取一个字符串:
String str = EntityUtils.toString(entity);
使用StringEntity而不是ByteArrayEntity:
new StringEntity(xml, Charset.defaultCharset())