import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.Proxy; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import com.iebc.utils.DateUtils; /** * * */ public class WeatherService { private static String SERVICES_HOST = "www.webxml.com.cn"; private static String WEATHER_SERVICES_URL = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/"; private static String WEATHER_QUERY_URL ="http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather?theUserID=&theCityCode="; /** * 城市代码 / 北京昌平 */ private static int CITICODE = 785; public static void main(String[] args) throws Exception { String desc = "今天是" + DateUtils.getWeekOfDate(new Date()) + " " + DateUtils.getYear()+ " "; desc += new WeatherService().getWeatherStr(); System.out.println(desc); } public InputStream getSoapInputStream(String url) { InputStream inputStream = null; Proxy proxy; try { URL urlObj = new URL(url); //如果你的网络设置代理的话 String proxyAddress = "代理ip"; int proxyPort;//代理端口 proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress(proxyAddress , 80)); URLConnection urlConn = urlObj.openConnection(proxy); urlConn.setConnectTimeout(50000); urlConn.setRequestProperty("Host", SERVICES_HOST); //具体webService相关 urlConn.connect(); inputStream = urlConn.getInputStream(); } catch(MalformedURLException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } return inputStream; } public String getWeatherStr() { String desc = ""; try { List<String> weatherList = getWeather(CITICODE); if(weatherList != null && weatherList.size() > 7) { String tianqi = weatherList.get(7); if(tianqi.contains("日")) { tianqi = tianqi.substring(tianqi.indexOf("日") + 1); } String wendu = weatherList.get(8); desc += "天气" + tianqi; desc += " ,"; desc += wendu.replace("℃", "度").replace("/", "-"); } } catch(Exception e) { e.printStackTrace(); return desc; } return desc; } public List<String> getWeather(int cityCode) { List<String> weatherList = new ArrayList<String>(); Document document; DocumentBuilderFactory documentBF = DocumentBuilderFactory.newInstance(); documentBF.setNamespaceAware(true); try { DocumentBuilder documentB = documentBF.newDocumentBuilder(); System.out.println(WEATHER_QUERY_URL + cityCode); InputStream inputStream = getSoapInputStream(WEATHER_QUERY_URL + cityCode); document = documentB.parse(inputStream); NodeList nl = document.getElementsByTagName("string"); int len = nl.getLength(); for(int i = 0; i < len; i++) { Node n = nl.item(i); String weather = n.getFirstChild().getNodeValue(); weatherList.add(weather); } inputStream.close(); } catch(UnsupportedEncodingException e) { e.printStackTrace(); } catch(DOMException e) { e.printStackTrace(); } catch(ParserConfigurationException e) { e.printStackTrace(); } catch(SAXException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } return weatherList; } }
http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx
相关推荐
本实例将深入探讨Android中如何使用Webservice,特别是针对天气预报服务的调用。我们将关注以下几个核心知识点: 1. **Web Service基础**:Web Service是一种基于互联网的、标准化的、能够跨平台进行通信的软件服务...
总的来说,这个"天气预报WebService实例"是一个利用WebService技术开发的应用,其目的是提供一个平台来获取全球各地的天气信息。开发者可能使用了开源的API或者自行收集数据,然后通过编程语言(如Python、Java或C#...
本示例中,我们将探讨如何利用C#调用WebService来获取天气预报信息。这个过程涉及到网络通信、XML数据解析以及对第三方API的集成。 首先,我们需要理解WebService的工作原理。WebService是一种基于HTTP协议的远程...
上海思集信息科技有限公司提供的免费天气预报 WebService 接口为开发者提供了一个简单便捷的方式,用于集成天气预报功能到各种应用程序中。通过遵循上述介绍的方法和建议,开发者可以充分利用该接口的功能,同时确保...
【WebService服务的天气预报系统及网页】是一种基于Web技术的分布式应用程序接口,它允许不同的系统通过互联网进行交互,获取和共享信息。在这个案例中,我们关注的是一个利用WebService技术实现的天气预报系统,该...
【WebService天气预报查询的实现实例】是一种利用网络服务接口获取和展示天气预报信息的技术实践。在本实例中,开发者采用C#编程语言,利用WebService技术来构建一个天气查询系统。下面将详细介绍这个实例涉及的关键...
在本例中,“webservice天气预报例子cxf实例”指的是使用Apache CXF框架实现的一个天气预报相关的Web服务示例。 Apache CXF是一个开源框架,它为开发和部署Web服务提供了全面的支持。CXF允许开发者通过Java编程模型...
在这个示例中,我们关注的是如何使用WebService调用天气预报服务。 首先,我们需要了解`wsimport`工具。`wsimport`是Java SDK的一部分,用于从WSDL(Web Service Description Language)文件生成Java客户端存根类。...
【标题】"webservice动态访问天气预报(tomcat+jsp+servlet+webservice+cxf)"涉及的关键技术栈包括Web服务、服务器管理、前端交互等多个方面。本文将深入探讨这些技术在实现动态天气预报功能中的应用。 【描述】中...
【WebService获得天气预报demo Delphi7】是一个基于Delphi7开发的应用程序,它演示了如何通过使用WebService接口来获取特定城市的天气预报信息。这个项目主要关注的是如何在Delphi7中实现对网络服务的调用,以及如何...
总之,WebService实现天气预报是一个典型的应用案例,它展示了WebService如何跨越不同平台和语言,为开发人员提供了一种统一的方式来访问和集成远程服务。通过掌握WebService的基本概念和技术,我们可以在实际工作中...
【天气预报Webservice应用】 天气预报Webservice是一种基于网络的服务接口,允许应用程序通过发送特定的请求获取实时或预测的天气信息。在这个应用中,我们利用C#编程语言在Windows Forms (Winform)环境下构建了一...
在这个“WebService调用天气预报小例子”中,我们将探讨如何利用WebService获取并显示实时天气预报信息。 首先,WebService是基于标准的XML(Extensible Markup Language)和SOAP(Simple Object Access Protocol)...
在天气预报的场景下,一个WebService可能由气象部门或者专业天气服务提供商创建,提供API(应用程序编程接口)供其他开发者使用。通过这个API,开发者可以请求特定地点的天气数据,并将这些信息整合到自己的应用中。...
通过Flex调用Web Service开发天气预报服务,我们可以利用Flex的强大UI设计能力和ActionScript的灵活性,结合Web Service的数据交换能力,实现跨平台的应用程序。这种技术在很多实际项目中都有广泛应用,比如构建交互...
在本文中,我们将深入探讨如何使用C# Winform应用程序调用公开的天气预报Web服务接口。对于初学者来说,这是一个很好的实践项目,可以帮助理解Web服务的使用以及如何将它们集成到桌面应用程序中。如果你对这个主题...
Web服务(WebService)是一...通过研究这些文件,你可以更深入地了解如何实际操作这一过程,从而构建自己的天气预报应用。在实践中,还需要注意处理可能的异常情况,如网络问题、无效的SOAP响应等,确保应用的健壮性。
【标题】"天气预报 VC++ WebService" 是一个基于Visual C++编程语言开发的应用程序,其核心功能是通过调用WebService来获取并显示实时的天气信息。WebService是一种基于Web的、能够提供跨平台交互能力的服务,它允许...
在WinForms应用中,我们经常需要与外部服务进行交互,比如获取天气预报数据。本篇将详细介绍如何在C# WinForms应用中调用WebService来获取今明两天的天气情况。 首先,了解WebService。WebService是一种基于Web的、...
在客户端应用中,可以使用C#的SoapHttpClientProtocol类(对于SOAP Web服务)或HttpClient类(对于RESTful服务)来调用这个天气预报的WebService,获取并显示天气信息。 总的来说,"用C#写 的WebService天气预报...