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


相关推荐: 佛山网站制作系统,佛山企业变更地址网上办理步骤?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何快速搭建二级域名独立网站?  高端企业智能建站程序:SEO优化与响应式模板定制开发  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  创业网站制作流程,创业网站可靠吗?  黑客如何通过漏洞一步步攻陷网站服务器?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Python文件操作最佳实践_稳定性说明【指导】  Laravel如何记录自定义日志?(Log频道配置)  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  昵图网官方站入口 昵图网素材图库官网入口  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何快速搭建高效可靠的建站解决方案?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Laravel如何实现模型的全局作用域?(Global Scope示例)  使用C语言编写圣诞表白程序  如何快速建站并高效导出源代码?  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  高防服务器租用如何选择配置与防御等级?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  浅析上传头像示例及其注意事项  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  如何在阿里云域名上完成建站全流程?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何破解联通资金短缺导致的基站建设难题?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Android滚轮选择时间控件使用详解  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  免费视频制作网站,更新又快又好的免费电影网站?  Laravel如何使用Gate和Policy进行授权?(权限控制)  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  焦点电影公司作品,电影焦点结局是什么?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel如何处理CORS跨域请求?(配置示例)  如何在IIS中配置站点IP、端口及主机头?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  香港服务器如何优化才能显著提升网站加载速度?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  如何注册花生壳免费域名并搭建个人网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何用腾讯建站主机快速创建免费网站?