HttpClient 传输xml字符串
2016-05-26 11:32
375 查看
介绍:我现在有一个对象page,需要将page对象转换为xml格式并以binary方式传输到服务端
其中涉及到的技术点有:
1、对象转xml流
2、输出流转输入流
3、httpClient发送二进制流数据
POM文件依赖配置
java代码示例
其中涉及到的技术点有:
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)); } }
相关文章推荐
- Python动态类型的学习---引用的理解
- XML 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- 土人系列AS入门教程 -- 对象篇
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
- Ruby中XML格式数据处理库REXML的使用方法指南
- C#托管堆对象实例包含内容分析
- C#实现获取不同对象中名称相同属性的方法
- C#中如何使用 XmlReader 读取XML文件
- C#针对xml基本操作及保存配置文件应用实例
- Ruby使用REXML库来解析xml格式数据的方法
- Ruby程序中创建和解析XML文件的方法
- Ruby的XML格式数据解析库Nokogiri的使用进阶
- javascript asp教程第十一课--Application 对象
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法