java 中HttpClient传输xml字符串实例详解
2017-04-19 08:38
791 查看
java 中HttpClient传输xml字符串实例详解
介绍:我现在有一个对象page,需要将page对象转换为xml格式并以binary方式传输到服务端
其中涉及到的技术点有:
1、对象转xml流
2、输出流转输入流
3、httpClient发送二进制流数据
POM文件依赖配置
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.2</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.2.4</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.xwiki.platform</groupId> <artifactId>xwiki-platform-rest-model</artifactId> <version>7.2</version> </dependency> </dependencies>
java代码示例
public void testNewPage() throws Exception{ //定义对象 Page page =new Page(); page.setTitle("testPage"); page.setSyntax("xwiki/2.0"); page.setContent("This is a testPage"); page.setId("xwiki:Main.testPage"); //初始化并转换对象为xml文件的流 JAXBContext context = JAXBContext.newInstance("org.xwiki.rest.model.jaxb"); Marshaller marshaller=context.createMarshaller(); Unmarshaller unmarshaller = context.createUnmarshaller(); ByteArrayOutputStream out = new ByteArrayOutputStream(); marshaller.marshal( page, out ); //将流转换并放入到InputStreamEntity中 InputStreamEntity inputStreamEntity=new InputStreamEntity(new ByteArrayInputStream(out.toByteArray())); //发送请求 CloseableHttpClient httpclient = HttpClients.createDefault(); HttpUriRequest httpPost = RequestBuilder.put() .setUri(new URI("http://172.16.200.220:8082/xwiki/rest/wikis/xwiki/spaces/Main/pages/testPage")) .setEntity(inputStreamEntity) .setHeader("Content-Type", "application/xml") .setHeader("Cookie", cookieStr).build(); //获取返回结果 CloseableHttpResponse response = httpclient.execute(httpPost); System.out.println(response.getStatusLine().getStatusCode()); HttpEntity responseEntity=response.getEntity(); System.out.println(responseEntity); if(response.getStatusLine().getStatusCode()<400){ Page responsePage = (Page) unmarshaller.unmarshal(responseEntity.getContent()); System.out.println(responsePage); // System.out.println(new Gson().toJson(responsePage)); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
相关文章推荐
- Java HttpClient实例
- Java字符串详解的实例介绍
- HttpClient 在Java项目中的使用详解
- Java解析HttpClient获取的Json字符串报错Expected BEGIN_OBJECT but was STRING
- Android Asynchronous Http Client的用法实例(详解+源码)
- java通过dom4j解析xml字符串的实例
- Java乔晓松-httpURLConnection、URL、httpClient、httpPost、httpGet之代码详解篇
- java log4j.xml配置与使用 (详解及实例)
- JAVA SAX解析XML字符串实例
- Java 通过httpClient Post方式提交xml,并从服务端返回数据
- httpclient发送xml字符串(推送)
- JAVA: httpclient 详解——第一章;
- java dom4j 解析xml字符串的操作实例
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- java HttpClient Post实例
- java HttpClient Post实例
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- HttpClient用HttpPost传输中文字符串乱码