我们在进行接口对接时,会出现报文形式的信息传递,那么下文则介绍如何处理报文形式的xml文件。

http(https)- post -xml

public static String sendHttps(String xmlInfo) {//String a="";//请求参数String result = "";PrintWriter out = null;BufferedReader in = null;try {trustAllHosts();URL realUrl = new URL("https://apitest.bwjf.cn/openNozzle");//如果是https就是下面两行代码HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();conn.setHostnameVerifier(DO_NOT_VERIFY);//如果是http则是下面一行代码HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");conn.setRequestProperty("Content-Type", "text/plain;charset=utf-8");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());//加密String base64keyString = encoder(xmlInfo);// 发送请求参数out.print(base64keyString);System.out.println("发送报文:"+xmlInfo);System.out.println("加密报文:"+base64keyString);// flush输出流的缓冲out.flush();// System.out.println("响应报文:"+conn.getInputStream());// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}System.out.println("响应报文:"+result);String key = decoder(result);System.out.println("响应解密报文:"+key);} catch (Exception e) {e.printStackTrace();} finally {// 使用finally块来关闭输出流、输入流try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}

而传递报文需要对其进行base64加密解密处理,这个需要导入jar包。

 /***  加密*/public static String encoder(String xmlInfo) {byte[] bytes=xmlInfo.getBytes();String base64keyString =new BASE64Encoder().encodeBuffer(bytes);return base64keyString;}/***  解密*/public static String decoder(String xmlInfo) throws IOException {byte[] bt = (new BASE64Decoder()).decodeBuffer(xmlInfo); String key=new String(bt); return key;}

传递的xml信息封装处理,根据接口方提供的报文格式。

 StringBuilder sb = new StringBuilder();sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");sb.append("     <business id=\"CXSBZT\" >");sb.append("    <body>");sb.append("    <input>");sb.append("        <jsbh>" +jsbh + "</jsbh>");sb.append("    </input>");sb.append("    </body>");sb.append("</business>");return sb.toString();

http请求xml的报文接口相关推荐

  1. ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

    AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...

  2. xml格式报文的拼装,和解析成实体类

    我们的微信支付,使用的是第三方的支付,某银行的微信支持渠道.所有的接口请求.应答都是xml格式报文,这样就需要用到xml格式报文的拼装和解析,这儿简单讲一下. 拼接xml格式报文. 从页面表单提交和配 ...

  3. python并发1000个http请求_php下api接口的并发http请求

    php下api接口的并发http请求 ,提高app一个页面请求多个api接口,页面加载慢的问题: func_helper.php /*** 并发http请求** [* 'url' //请求地址* 'm ...

  4. elementui 上传请求头_element-ui上传组件多个文件同时上传请求一次后台接口(前后端代码版)...

    记录时间 2020年10月27日 22点38分 前言 在使用element-ui上传组件上传多个文件时,出现多个文件对应着多个请求,比如你要上传3个文件,那么将请求3个后台接口,这样会无形之中增加了后 ...

  5. TP5后端,VUE前端请求聚合数据新闻接口

    问题描述: TP5当后端,VUE当前端, 请求聚合数据新闻接口 演示效果如下: ps: 最开始加载页面的时候,只加载本地的文件(因为请求次数有限制) 问题解决: 1: vue 文件: <temp ...

  6. Wireshark 抓包分析 HTTP 请求、响应报文格式

    文章目录 报文结构 HTTP 请求报文的请求行 请求方法 GET/HEAD POST/PUT 其他方法 URI URI 的格式 URI 的编码 HTTP 响应报文的状态行 状态码 HTTP 请求.响应 ...

  7. 请求一个短信接口,并接收该接口返回的状态值

    最近项目中用到发送验证码这个功能,需要请求一个短信接口,并且接收请求后返回的状态值,开始我觉得要抓取页面内容,然后自己也就这样做了,发现效果不理想,之后就放弃了. 接着就百度了,有人提到用HttpWe ...

  8. HTTP请求方式和报文解析

    一.概述 最近想尝试写一个关于网络请求的系列文章,将网络请求的基础.使用及网络框架的学习分析总结以下,大致准备从以下几个方面分析: 网络请求的基础 HTTP请求方式和报文解析 Cookie 和 Ses ...

  9. TP5后端,VUE前端请求聚合数据天气接口

    问题描述: TP5 当后端 VUE 当前端 请求聚合数据天气接口 问题解决: 演示效果 前端 VUE 代码: <template><div class="whether-t ...

最新文章

  1. jQuery操作元素属性
  2. 记录每次更新到仓库 —— Git 学习笔记 10
  3. python元组的方法_Python元组及其方法
  4. 【Linux】一步一步学Linux——cd命令(20)
  5. Java程序设计当中包的使用_【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.2 类的继承...
  6. java 请求url 返回数据_java后台发起get请求获取响应数据|chu
  7. 4.Flow Layout Pane
  8. 解决webpack4版本在打包时候出现Cannot read property ‘bindings‘ of null 或 Cannot find module ‘@babel/core‘问题
  9. 一文看尽苹果WWDC大会:今年有亮点,但都不“硬”
  10. TCP协议和UDP协议的对比
  11. 仪器仪表的标定、检定、校准、校验的区别【图文详解】
  12. 区块链项目_数字资产控股DAH_清算结算
  13. cesium 3d建筑物光效 泛光实体
  14. 如何卸载avast free antivirus软件?
  15. 十字路口红绿灯plc程序_西门子PLC编程实例详解十字路口交通灯自动控制系统!...
  16. linux终端关闭xmanager,xmanager之linux 解决方法
  17. 分组统计 - 不同时间颗粒度下,按照秒、分、时、日、周、月、季度、年 GROUP BY 分组统计 - (MySQL)
  18. Android之人脸识别
  19. 我奋斗了18年,不是为了和你一起喝咖啡(转)
  20. 【云原生】阿里云服务器部署 Docker Swarm集群

热门文章

  1. 电脑怎么格式化?跟着这2步就可以啦!
  2. 【V-MoE】论文学习笔记
  3. 2023 年 1 月阿拉丁指数百强发布:更替率 17%,旅游回暖,餐饮火爆,要“年味儿”更要“健康”
  4. turtle在python中什么意思_python中关于turtle库的学习笔记
  5. 初中计算机软件课后反思,初中信息技术教学反思.doc
  6. STM32中断挂起和RTOS任务挂起的区别
  7. 计算机英语写一封邮件给汤姆作文,英语仿写一封信 介绍自己
  8. 自己动手实现广义逆矩阵求解(2022.5.4)
  9. RBA验厂辅导,RBA验厂取代EICC验厂社会责任验厂变化解决方案
  10. 基于springboot的论坛系统