`
123123ghiwjn
  • 浏览: 24885 次
  • 性别: 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. }  
分享到:
评论

相关推荐

    oracle利用UTL-HTTP包访问SOAP、HTTP接口并通过管道函数解析xml响应文件用游标以表方式输出

    2. **测试管道函数**:使用模拟的 XML 文档作为输入,测试管道函数是否能正确解析数据并以表格形式输出。 ### 总结 本文档详细介绍了如何在 Oracle 数据库中使用 UTL_HTTP 包访问 SOAP 或 HTTP 接口,并通过创建...

    读取PLC寄存器,读写XML文件

    在IT行业中,PLC(可编程逻辑控制器)和XML(可扩展标记语言)是两种非常...反之,也可以从XML文件中读取数据并写入PLC,实现远程控制或自动化任务。这样的系统在制造业、物联网和工业4.0应用中具有广泛的应用前景。

    学生信息查询服务XML版

    在“学生信息查询服务XML版”中,学生信息是以XML文件的形式保存的,这些文件通常位于WebSite1项目下的App_Data目录。App_Data是一个常见的.NET Framework应用程序存放数据文件的目录,它可以包含数据库文件、文本...

    用友U8_EAI数据接口常见问题.doc

    ### 用友U8_EAI数据接口常见问题详解 #### 1. CRM与U8接口,如何控制只从U8导入当前时间以后的数据? - **问题背景**:在实际业务场景中,通常需要确保从用友U8系统同步至CRM系统的数据是最新的,即只同步在特定...

    C#利用post访问接口

    接着,我们创建了一个FormUrlEncodedContent对象,其中包含了要发送的数据,这些数据将以键值对的形式发送。PostAsync方法用于发送POST请求,第一个参数是API的端点路径,第二个参数是我们要发送的内容。最后,我们...

    远程查询数据的一个技术方案

    - 目标是依据过往对外数据查询的需求,形成一套社保数据查询平台的技术方案,包括整体架构、接口数据流图和具体实施方案。 - 范围仅限于社保对外数据查询平台的需求,不涉及其他系统或业务。 2. **总体架构**: ...

    Java Xml 编程指南

    8. **XML与SOAP、RESTful服务**:XML是Web服务通信的基础,SOAP(简单对象访问协议)使用XML消息进行远程调用,而RESTful服务则常通过XML作为传输数据的载体。 9. **Spring框架中的XML配置**:Spring框架允许通过...

    c# 基于反射、自定义特性、Web Services、xml序列化的应用实例 !

    例如,反射可以用来动态地加载Web服务的接口,自定义特性可以用于装饰服务方法以提供元数据信息,XML序列化则确保数据以标准格式在网络间传递。在"DBWebService"的上下文中,这可能是这样的流程: - 客户端通过反射...

    企业数据接口管理规范V1.0.pdf

    4. **WebService**:WebService是一种跨平台、跨系统的远程调用技术,基于XML进行数据交换,简化了系统间的通信,降低了技术要求和操作平台限制。 5. **XML(可扩展标记语言)**:XML是一种用于表示结构化信息的...

    用JAVA和XML构建分布式系统

    Java程序可以通过DOM API访问XML数据,XML解析器则负责生成XML文档的DOM表示。 图1展示了一个处理XML文档的Java分布式应用模型。在这个模型中,数据可以从关系数据库等数据源获取。Java代码负责处理这些数据,并...

    (15)silverlight数据源对象的访问

    `IValueConverter`接口则允许我们将数据源的值转换为适合UI显示的形式,或者将用户界面的输入转换回数据源的格式。同时,`ValidationSummary`控件可以帮助我们集中显示验证错误,提供更好的用户体验。 总的来说,...

    Java中关于XML的API

    这种绑定允许开发人员以面向对象的方式处理XML数据,提高了开发效率和代码的可维护性。 - **双向映射**:JAXB支持从Java对象到XML文档的序列化(marshalling),以及从XML文档到Java对象的反序列化(unmarshalling...

    XML解析在符合SCORM规范课件设计中的应用

    DOM(Document Object Model,文档对象模型)是一种处理XML文件的接口,它提供了一种将XML文档表示为树形结构的方法,使得开发人员可以方便地访问、修改和操作文档中的元素。DOM接口支持多种编程语言,如Java、C#等...

    cxf框架的webservice,传递json,xml

    CXF框架提供了基于Java的接口来定义和实现WebService,这些接口基于JAX-WS(Java API for XML Web Services)标准。开发者可以通过CXF快速地创建服务端点和服务客户端,实现服务的发布和调用。 2. **XML处理** 在...

    Xml WebService完全实例解析.docx

    - 数据交换仅限于序列化后的数据,最常见的形式是XML,因为XML具有良好的可读性和结构化特性,适合跨平台的数据交换。 2. **XML Web Service的实例——分布式课件搜索系统** - 在这个实例中,我们有一个名为`...

    Python-CSDN爬虫远程服务器MySQL存储数据可视化

    9. **数据可视化**:项目中提到的“数据可视化”可能是使用Python的matplotlib、seaborn或者更专业的数据可视化库如Tableau,将抓取和存储的数据以图表的形式展示出来,帮助分析和理解数据。 10. **版本控制**:...

    GIS与业务系统接口设计[定义].pdf

    BlazeDS以servlet的形式在Java应用服务器上运行,支持标准的Java网络应用。在服务器端,BlazeDS提供了三种核心服务:远程调用、访问代理和消息服务,同时还允许开发者自定义服务。客户端则通过RemoteObject、...

    互联网应用系统间接口技术的应用研究.pdf

    API是应用程序接口的简称,它规定了应用程序如何请求服务以及服务如何响应请求,而Web服务接口通常采用可扩展标记语言(XML)或简单对象访问协议(SOAP)等技术实现不同系统之间的通信。 在接口的实现方式上,常见...

    基于Android系统的数据存储访问机制研究.pdf

    当需要存储或访问远程数据时,可以使用网络存储。Android提供了HttpURLConnection、HttpClient、OkHttp等网络库进行HTTP通信,支持JSON、XML等数据格式的解析和序列化。此外,还可以使用Google的Firebase Cloud ...

Global site tag (gtag.js) - Google Analytics