以XML形式访问远程接口获得数据

2023-10-29

JDK提供了供我们访问url获得数据的类,核心类主要是URL,URLConnection等(详见JDK API)
下面以XML形式实现两者通信
Servlet端发送信息:

Java代码 复制代码
  1. protected void doGet(HttpServletRequest req, HttpServletResponse resp)   
  2.             throws ServletException, IOException {   
  3.         // TODO Auto-generated method stub   
  4.         resp.setCharacterEncoding("utf-8");   
  5.         PrintWriter print= resp.getWriter();   
  6.         String s = "<?xml version='1.0' encoding='utf-8'?>   
  7.                                     <web-shhzs>   
  8.                                        <return-param>    
  9.                                           <return-no>0</return-no>   
  10.                                           <return-text>执行正常</return-text>   
  11.                                         </return-param>   
  12.                                         <ptfp>   
  13.                                           <kpxsje>123456789</kpxsje>   
  14.                                         </ptfp>   
  15.                                     </web-shhzs>";   
  16.         print.write(s);   
  17.         print.flush();   
  18.         print.close();   
  19.     }  
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		resp.setCharacterEncoding("utf-8");
		PrintWriter print= resp.getWriter();
		String s = "<?xml version='1.0' encoding='utf-8'?>
                                    <web-shhzs>
                                       <return-param> 
                                          <return-no>0</return-no>
                                          <return-text>执行正常</return-text>
                                        </return-param>
                                        <ptfp>
                                          <kpxsje>123456789</kpxsje>
                                        </ptfp>
                                    </web-shhzs>";
		print.write(s);
		print.flush();
		print.close();
	}


获得访问返回信息,以字符串返回:

Java代码 复制代码
  1.     public static String getXML(String sh,String type,String date) throws IOException{   
  2.         StringBuffer urlStr = new StringBuffer("http://localhost:8888/Hello/getDom.do");   
  3. //      urlStr.append("?param1=").append(sh)   
  4. //            .append("&param2=").append(type)   
  5. //            .append("&param3=").append(date);   
  6.         URL url = new URL(urlStr.toString());   
  7.         URLConnection URLconnection = url.openConnection();   
  8.         HttpURLConnection httpConnection = (HttpURLConnection)URLconnection;   
  9.         int responseCode = httpConnection.getResponseCode();   
  10. //      FileOutputStream fos=new FileOutputStream("d://line.txt",true);      
  11. //      DataOutputStream out=new DataOutputStream(fos);    
  12.         StringBuffer totalXML = new StringBuffer("");   
  13.         if(responseCode == HttpURLConnection.HTTP_OK){   
  14.             InputStream httpStream = httpConnection.getInputStream();   
  15.             BufferedReader bufferReader = new BufferedReader(new InputStreamReader(httpStream));   
  16.             String currLine = "";   
  17.             while((currLine=bufferReader.readLine())!=null){   
  18. //              out.writeBytes(new   String(currLine.getBytes(),"utf-8"));      
  19. //              out.writeBytes("\r\n");      
  20.                 totalXML.append(currLine);   
  21.             }   
  22.         }   
  23. //      fos.close();      
  24. //      out.close();      
  25.         return totalXML.toString();   
  26.     }  
	public static String getXML(String sh,String type,String date) throws IOException{
		StringBuffer urlStr = new StringBuffer("http://localhost:8888/Hello/getDom.do");
//		urlStr.append("?param1=").append(sh)
//			  .append("&param2=").append(type)
//			  .append("&param3=").append(date);
		URL url = new URL(urlStr.toString());
		URLConnection URLconnection = url.openConnection();
		HttpURLConnection httpConnection = (HttpURLConnection)URLconnection;
		int responseCode = httpConnection.getResponseCode();
//		FileOutputStream fos=new FileOutputStream("d://line.txt",true);   
//	    DataOutputStream out=new DataOutputStream(fos); 
	    StringBuffer totalXML = new StringBuffer("");
		if(responseCode == HttpURLConnection.HTTP_OK){
			InputStream httpStream = httpConnection.getInputStream();
			BufferedReader bufferReader = new BufferedReader(new InputStreamReader(httpStream));
			String currLine = "";
			while((currLine=bufferReader.readLine())!=null){
//				out.writeBytes(new   String(currLine.getBytes(),"utf-8"));   
//	            out.writeBytes("\r\n");   
				totalXML.append(currLine);
			}
		}
//		fos.close();   
//      out.close();   
		return totalXML.toString();
	}


用DOM4J解析XML获得相应信息封装为Map

Java代码 复制代码
  1. public static Map getFpxx(String text){   
  2.        
  3.     Map map = new HashMap();   
  4.     Document document;   
  5.     try {   
  6.                  //dom4j解析字符串为xml   
  7.     document = DocumentHelper.parseText(text);   
  8.         Element root = document.getRootElement();   
  9.         Element e1 = root.element("return-param");   
  10.         if(null!=e1){   
  11.              if(null!=e1){   
  12.                  String state = e1.element("return-text").getStringValue();   
  13.                  System.out.println(state);   
  14.                  map.put("state", state);   
  15.                     
  16.              }   
  17.              Element e2 = root.element("ptfp");   
  18.              if(null!=e2){   
  19.                  String kpxsje = e2.element("kpxsje").getStringValue();   
  20.                  System.out.println(kpxsje);   
  21.                  map.put("result", kpxsje);   
  22.              }   
  23.          }   
  24.     } catch (DocumentException e) {   
  25.         // TODO Auto-generated catch block   
  26.         e.printStackTrace();   
  27.         logger.error("字符串转换为xml时出错");   
  28.     }   
  29.     return map;   
  30. }  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以XML形式访问远程接口获得数据 的相关文章

随机推荐

  • 判断应用或Activity是否存在

    一 判断应用是否存在 方法一 通过usb连接的方式 使用adb命令查看已安装的文件列表 adb shell pm list package 然后通过查看列表里是否含有对应的应用名来判断是否安装某应用 列表如下 adb shell pm li
  • Qt 数据类型转换 QString转Quint16

    如使用了QString存储用户输入的数据 数据类型 指的是quint16 qint16 float quint32 qint32等 可供用户自己选择的 而最终要使用的数据类型是quin16 下面是各种类型的转换 一 QString strV
  • Apache commons exec框架的简介说明

    转自 Apache commons exec框架的简介说明 下文笔者讲述Apache commons exec框架的简介说明 如下所示 Apache commmons exec框架的功能 Apache commons exec框架是对 Pr
  • Linux进程间通信——使用匿名管道

    本文介绍另一种进程间通信的方式 匿名管道 通过它进程间可以交换更多有用的数据 一 什么是管道 如果你使用过Linux的命令 那么对于管道这个名词你一定不会感觉到陌生 因为我们通常通过符号 来使用管道 但是管理的真正定义是什么呢 管道是一个进
  • SVG生成页面水印

    svg生成页面水印 灰信网 软件开发博客聚合
  • ElasticSearch基本操作

    文章目录 1 ElasticSearch 简介 2 索引库操作 2 1 mapping 属性 2 2 索引库CRUD 3 文档操作 3 1 新增文档 3 2查询文档 3 3删除文档 3 4修改文档 4 RestClient 4 1准备工作
  • C/C++静态变量static详解

    静态变量作用范围在一个文件内 程序开始时分配空间 结束时释放空间 默认初始化为0 使用时可以改变其值 静态变量或静态函数只有本文件内的代码才能访问它 它的名字在其它文件中不可见 用法1 函数内部声明的static变量 可作为对象间的一种通信
  • 数据挖掘 NO.1 数据挖掘入门

    1 机器学习 代价函数 m是样本数量 直到最后得到的值收敛或者样本使用完 1 定义代价函数 2 对每个参数求偏导数 3 使用梯度下降算法更新 数据集先开始进行划分 解决OVERFITTING 1 在测试集评估模型 2 Regelizatio
  • Hibernate之多对多级联查询、新增、删除

    以书籍与书籍类别为例 一本书可以有多种类型 一种类型也可以对应多本书 书籍和书籍类别的关系是多对多的关系 他们的关系是在中间表里面的 多对多通过一个表找到另一个表的数据的条件为 中间表 中间表对应本表的外键 中间表对应关联表的外键 注 多对
  • 使用picgo配置图床使用

    图床这种东西 做博客是必须要的 这里我记录目前我使用的几种图床 方便以后使用 以后有新的好用的 也会相应的更新 sm ms图床 免费的sm sm ms图床 好用 速度还可以 下面图片是sm图 可以感受一下速度 csdn图床 csdn这个社区
  • 【裸机开发】I2C 通信接口(二)—— I2C 寄存器解析

    目录 一 硬件原理图分析 二 IO 复用寄存器解析 三 I2C 寄存器解析 3 1 时钟配置 3 2 I2C1 IADR 设置从机地址 3 3 I2C1 IFDR 设置分频值 3 4 I2C1 I2CR I2C使能 中断控制 3 5 I2C
  • ArcPy批量计算栅格数据平均值

    遥感数据处理系列 一些项目及科研中遇到的小需求 一方面记录自己的学习历程 另一方面帮助大家学习 本系列文章的开发环境为 ArcGIS 10 2 2 Python 2 7 ENVI 5 3 IDL 8 5 ArcPy批量计算栅格数据平均值 G
  • Keil C51从汇编跳转到main函数编译器报错ERROR L127: UNRESOLVED EXTERNAL SYMBOL的解决办法

    51单片机系列教程主仓库地址 https gitee com langcai1943 8051 from boot to application 遇到的问题1 如果你自建的汇编原文件不是以Keil默认的 A51或者 s S结尾 而是以 as
  • 华为手机连电脑当摄像头用_华为手机摄像头还能这样用!300页文档轻松电子化,堪称职场法宝...

    华为手机摄像头还能这样用 300页文档轻松电子化 堪称职场法宝 我们生活中经常会使用相机记录一些美好的瞬间 可是你知道吗 华为手机摄像头还能这样用 300页的纸质文档可轻松电子化 堪称职场法宝 使用过华为手机的朋友们 应该都知道华为手机的拍
  • 三极管使用详解

    扣扣技术交流群 460189483 PNP型的三极管使用方法 常见的三极管为9012 s8550 9013 s8050 单片机应用电路中三极管主要的作用就是开关作用 其中9012与8550为pnp型三极管 可以通用 其中9013与8050为
  • Ubuntu需要运行networkmanager的解决方法

    问题 在使用ubuntu时无法联网 打开网络设置发现如下情况 解决方法 打开终端 输入su 获取管理员权限 然后输入systemctl start NetworkManager service 完成后即可正常联网了 新问题 每次开机后都需要
  • 元器选型攻略之 电感

    电子元器件领域电阻 电容 电感被称为 三剑客 其中电感又被称为 渣男 什么是电感 提到电感 离不开电感线圈这个名词 即用绝缘导线绕制而成的电磁感应元件 要理解电感 首先了解几个名词 感生 变化 改变 让我们回到高中课本 1 当一个导体相对磁
  • 论文笔记:Deep Representation Learning for Trajectory Similarity Computation

    ICDE 2018 1 intro 1 1 背景 用于计算轨迹相似性的成对点匹配方法 DTW LCSS EDR ERP 的问题 轨迹的采样率不均匀 如果两个轨迹表示相同的基本路径 但是以不同的采样率生成 那么这些方法很难将它们识别为相似的轨
  • Qt 之 QSS(样式表语法)

    简述 Qt样式表 以下统称QSS 的术语和语法规则几乎和CSS相同 如果你熟悉CSS 可以快速浏览以下内容 样式规则 QSS包含了一个样式规则序列 一个样式规则由一个选择器和声明组成 选择器指定哪些部件由规则影响 声明指定哪些属性应该在部件
  • 以XML形式访问远程接口获得数据

    JDK提供了供我们访问url获得数据的类 核心类主要是URL URLConnection等 详见JDK API 下面以XML形式实现两者通信 Servlet端发送信息 Java代码 protected void doGet HttpServ