java调用.net的WebService.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【Java调用.NET WebService详解】 在跨平台的软件开发中,Java与.NET之间的互操作性是一个重要的话题。本文将详细介绍如何使用Java调用.NET构建的Web服务,以获取天气预报为例,展示具体步骤和代码实现。 理解WebService的基本原理。WebService是一种基于HTTP协议的、平台无关的服务,通过SOAP(Simple Object Access Protocol)消息进行通信,以XML格式传输数据。在这种场景下,Java应用可以调用.NET编写的Web服务,反之亦然,实现了不同语言和平台间的通信。 以http://www.wopos.com/webservice/Weather.asmx?op=getWeather为例,这是一个公开的天气预报Web服务,提供getWeather方法,接受城市名称作为参数,返回对应城市的天气信息。我们可以看到请求的SOAP消息结构,包括SOAP Envelope、Body以及具体的getWeather元素,其中mCity元素用于传递城市名称。 为了方便编程,我们可以创建一个XML文件(如weathersoap.xml),将模板中的`<mCity>string</mCity>`替换为`${city}`,这样在实际调用时可以通过字符串替换动态传入城市名。 接下来,我们将编写Java代码来调用这个Web服务。这里使用了Java的标准库,包括`java.io`、`java.net`以及`javax.xml.parsers`包中的类,来处理HTTP请求和解析XML响应。 ```java package jaqcy.weatherreport.client; import java.io.*; import java.net.*; import javax.xml.parsers.*; import org.w3c.dom.*; public class WeatherReport { private static String getSoapRequest(String city) { try { // 创建SOAP请求的XML字符串 // ... } catch (Exception e) { e.printStackTrace(); } return soapRequest; } public static void main(String[] args) { String city = "北京"; // 假设我们要查询北京的天气 String soapRequest = getSoapRequest(city); // 发送HTTP POST请求并获取响应 URL url = new URL("http://www.wopos.com/webservice/Weather.asmx"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8"); conn.setRequestProperty("SOAPAction", "http://tempuri.org/getWeather"); conn.setDoOutput(true); DataOutputStream wr = new DataOutputStream(conn.getOutputStream()); wr.writeBytes(soapRequest); wr.flush(); wr.close(); // 读取并解析响应 int responseCode = conn.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(new InputSource(new StringReader(response.toString()))); // 解析响应XML,找到getWeatherResult元素获取天气信息 // ... } else { System.out.println("请求失败,响应码:" + responseCode); } conn.disconnect(); } } ``` 在`main`方法中,我们构建SOAP请求并发送HTTP POST请求,然后读取响应。解析响应XML时,可以使用DOM解析器找到`getWeatherResult`元素,提取出天气信息。这通常涉及到对XML文档的遍历和查询,例如使用XPath表达式或DOM API。 总结起来,Java调用.NET WebService的核心步骤包括: 1. 构建SOAP请求XML。 2. 发送HTTP POST请求,设置请求头。 3. 读取并解析响应,提取所需数据。 注意,实际应用中可能还需要处理异常,如网络错误、解析错误等,并且可能需要考虑线程安全、连接管理等问题。此外,还有其他工具和框架,如Apache CXF、JAX-WS等,可以帮助简化Java调用Web服务的过程。
- 粉丝: 10
- 资源: 15万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 00-【管理制度】09-师带徒管理办法.docx
- 02-【考核方案】02-师带徒考核管理办法.docx
- 02-【考核方案】06-师带徒考核表.doc
- 02-【考核方案】05-师带徒考核标准打分表.doc
- 02-【考核方案】04-师带徒工作考核评价办法.docx
- 02-【考核方案】07-师带徒考核评定标准表范例.doc
- 02-【考核方案】09-师带徒月度考核表.xls
- 03-【培训方案】新员工师带徒岗位成才培训方案.doc
- 双pwm变流器,ac-dc-ac,整流逆变并网,整流侧采用双闭环PI控制,电压外环电流内环,双解耦,svpwm;逆变侧采用双闭环PI控制,电压外环电流内环,svpwm 380vac整流至750v,再
- 导师制培养方案.pptx
- 结构化在岗辅导与导师制P30.pptx
- 华为导师制人才培养模式p22.pptx
- MPPT电导增量法INC仿真模型,作为目前实际光伏发电系统中最常用的mppt算法,采用了输出参考电压的方式来进行PWM调制
- “师带徒”评价表(徒弟评价师傅).xls
- 导师带徒活动记录.xls
- “师带徒”统计表.xlsx