当前位置: 移动技术网 > IT编程>开发语言>Java > java 中HttpClient传输xml字符串实例详解

java 中HttpClient传输xml字符串实例详解

2019年07月22日  | 移动技术网IT编程  | 我要评论

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)); 
    } 
  } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网