`
123123ghiwjn
  • 浏览: 24694 次
  • 性别: Icon_minigender_2
  • 来自: 陕西
社区版块
存档分类
最新评论

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

阅读更多

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. }  
分享到:
评论

相关推荐

    DWR.xml配置文件说明书(含源码)

    DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    jsr80 java 访问 usb

    它包括一个 RMI proxy 和一个 daemon 应用程序,它让 Java 应用程序可以访问远程计算机上的 USB 设备。 usb.util : 这个包提供了一些有用的实用程序,可以将 firmware下载到 USB 设备上、将 USB 系统的内容转储到 ...

    ASP3《高级编程》(第一部分)

    11.2.1 存储为XML形式的ADO记录集 354 11.2.2 ADO记录集名称空间 355 11.2.3 ADO记录集模式 355 11.2.4 IE数据岛和绑定 358 11.2.5 以XML数据格式保存记录集 361 11.2.6 打开记录集 365 11.3 用XSL来设计XML ...

    ASP3《高级编程》(第二部分)

    11.2.1 存储为XML形式的ADO记录集 354 11.2.2 ADO记录集名称空间 355 11.2.3 ADO记录集模式 355 11.2.4 IE数据岛和绑定 358 11.2.5 以XML数据格式保存记录集 361 11.2.6 打开记录集 365 11.3 用XSL来设计XML ...

    JAVA上百实例源码以及开源项目源代码

    得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI...

    超级有影响力霸气的Java面试题大全文档

    它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是...

    java 面试题 总结

    它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是...

    java开源包1

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    Spring中文帮助文档

    3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @...

    jsp servlet 入门学习资料-新手一看就懂

    5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 include指令 5.3.1 taglib指令 5.4 脚本元素 5.4.1 声明 5.4.2 脚本代码...

    Spring API

    3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @...

    jsp从入门到高级编程

    5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 include指令 5.3.1 taglib指令 5.4 脚本元素 5.4.1 声明 5.4.2 脚本代码...

    JSP高级教程

    5.1 为什么要使用XML相容的语法形式 5.2 关于文本类型的语法 5.2.1 jsp:root元素 5.2.2 公共标识符 5.3 指令 5.3.1 page指令 5.3.2 include指令 5.3.1 taglib指令 5.4 脚本元素 5.4.1 声明 5.4.2 脚本代码...

    易语言程序免安装版下载

     静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...

    网趣网上购物系统HTML静态版v2012版

    随着网络安全的日益提高,为防止部分恶意人员对商城进行点击或其他不法行为,网趣网上购物系统新增IP访问限制功能,添加某IP后即可限制此IP人员的访问,同时系统支持IP段的限制访问功能,可对同一IP段进行访问限制...

    C#微软培训资料

    以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性...

    JAVA上百实例源码以及开源项目

    得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI...

    网新企业网站管理系统(蓝色) v9.6.rar

    生成谷歌Google SiteMap、生成百度XML、智能生成静态Html页面、 自动生成拼音形式文件名、自定义生成静态页面文件名、自定义静态页面存放目录、站内流量统计接口、搜索引擎登录接口; 14、独有精心设计的前台产品...

Global site tag (gtag.js) - Google Analytics