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

发布时间 - 2026-01-11 00:43:05    点击率:

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

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


# HttpClient传输xml  # java  # HttpClient  # 中HttpClient传输xml字符串  # Java commons-httpclient如果实现get及post请求  # java爬虫之使用HttpClient模拟浏览器发送请求方法详解  # java httpclient设置超时时间和代理的方法  # 如何使用HttpClient发送java对象到服务器  # Java11新特性之HttpClient小试牛刀  # java使用common-httpclient包实现post请求方法示例  # JAVA通过HttpClient发送HTTP请求的方法示例  # JAVA利用HttpClient进行HTTPS接口调用的方法  # java web中 HttpClient模拟浏览器登录后发起请求  # Java爬虫Jsoup+httpclient获取动态生成的数据  # Java httpClient介绍以及使用示例  # 我现在  # 希望能  # 并以  # 涉及到  # 谢谢大家  # 转换为  # 服务端  # 有一个  # google  # code  # gson  # type  # apache  # httpmime 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  EditPlus中的正则表达式实战(6)  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  进行网站优化必须要坚持的四大原则  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Python图片处理进阶教程_Pillow滤镜与图像增强  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  网站页面设计需要考虑到这些问题  深圳网站制作培训,深圳哪些招聘网站比较好?  JavaScript实现Fly Bird小游戏  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  如何为不同团队 ID 动态生成多个独立按钮  iOS中将个别页面强制横屏其他页面竖屏  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  如何快速查询域名建站关键信息?  5种Android数据存储方式汇总  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何在IIS中新建站点并配置端口与物理路径?  详解Android中Activity的四大启动模式实验简述  如何在IIS中配置站点IP、端口及主机头?  晋江文学城电脑版官网 晋江文学城网页版直接进入  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何将凡科建站内容保存为本地文件?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何为API编写文档_Laravel API文档生成与维护方法  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何为不同团队 ID 动态生成多个非值班状态按钮  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  如何登录建站主机?访问步骤全解析  网站优化排名时,需要考虑哪些问题呢?  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何挑选优质建站一级代理提升网站排名?  香港服务器租用每月最低只需15元?  如何解决hover在ie6中的兼容性问题  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  高防服务器租用如何选择配置与防御等级?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  微信小程序 五星评分(包括半颗星评分)实例代码  如何用5美元大硬盘VPS安全高效搭建个人网站?  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Bootstrap整体框架之JavaScript插件架构