`

webservice应用之查看天气预报

    博客分类:
  • java
阅读更多
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详解与调用天气预报Webservice完整实例

    本实例将深入探讨Android中如何使用Webservice,特别是针对天气预报服务的调用。我们将关注以下几个核心知识点: 1. **Web Service基础**:Web Service是一种基于互联网的、标准化的、能够跨平台进行通信的软件服务...

    天气预报WebService实例

    总的来说,这个"天气预报WebService实例"是一个利用WebService技术开发的应用,其目的是提供一个平台来获取全球各地的天气信息。开发者可能使用了开源的API或者自行收集数据,然后通过编程语言(如Python、Java或C#...

    C#调用WebService实现天气预报

    本示例中,我们将探讨如何利用C#调用WebService来获取天气预报信息。这个过程涉及到网络通信、XML数据解析以及对第三方API的集成。 首先,我们需要理解WebService的工作原理。WebService是一种基于HTTP协议的远程...

    免费天气预报 WebService 接口

    上海思集信息科技有限公司提供的免费天气预报 WebService 接口为开发者提供了一个简单便捷的方式,用于集成天气预报功能到各种应用程序中。通过遵循上述介绍的方法和建议,开发者可以充分利用该接口的功能,同时确保...

    WebService服务的天气预报系统及网页

    【WebService服务的天气预报系统及网页】是一种基于Web技术的分布式应用程序接口,它允许不同的系统通过互联网进行交互,获取和共享信息。在这个案例中,我们关注的是一个利用WebService技术实现的天气预报系统,该...

    WebService天气预报查询的实现实例

    【WebService天气预报查询的实现实例】是一种利用网络服务接口获取和展示天气预报信息的技术实践。在本实例中,开发者采用C#编程语言,利用WebService技术来构建一个天气查询系统。下面将详细介绍这个实例涉及的关键...

    webservice天气预报例子cxf实例

    在本例中,“webservice天气预报例子cxf实例”指的是使用Apache CXF框架实现的一个天气预报相关的Web服务示例。 Apache CXF是一个开源框架,它为开发和部署Web服务提供了全面的支持。CXF允许开发者通过Java编程模型...

    WebService 的调用天气预报(附源码Demo)

    在这个示例中,我们关注的是如何使用WebService调用天气预报服务。 首先,我们需要了解`wsimport`工具。`wsimport`是Java SDK的一部分,用于从WSDL(Web Service Description Language)文件生成Java客户端存根类。...

    webservice动态访问天气预报(tomcat+jsp+servlet+webservice+cxf)

    【标题】"webservice动态访问天气预报(tomcat+jsp+servlet+webservice+cxf)"涉及的关键技术栈包括Web服务、服务器管理、前端交互等多个方面。本文将深入探讨这些技术在实现动态天气预报功能中的应用。 【描述】中...

    WebService获得天气预报demo Delphi7

    【WebService获得天气预报demo Delphi7】是一个基于Delphi7开发的应用程序,它演示了如何通过使用WebService接口来获取特定城市的天气预报信息。这个项目主要关注的是如何在Delphi7中实现对网络服务的调用,以及如何...

    WebService实现天气预报

    总之,WebService实现天气预报是一个典型的应用案例,它展示了WebService如何跨越不同平台和语言,为开发人员提供了一种统一的方式来访问和集成远程服务。通过掌握WebService的基本概念和技术,我们可以在实际工作中...

    天气预报webservice应用

    【天气预报Webservice应用】 天气预报Webservice是一种基于网络的服务接口,允许应用程序通过发送特定的请求获取实时或预测的天气信息。在这个应用中,我们利用C#编程语言在Windows Forms (Winform)环境下构建了一...

    WebService调用天气预报小例子

    在这个“WebService调用天气预报小例子”中,我们将探讨如何利用WebService获取并显示实时天气预报信息。 首先,WebService是基于标准的XML(Extensible Markup Language)和SOAP(Simple Object Access Protocol)...

    WebService天气预报

    在天气预报的场景下,一个WebService可能由气象部门或者专业天气服务提供商创建,提供API(应用程序编程接口)供其他开发者使用。通过这个API,开发者可以请求特定地点的天气数据,并将这些信息整合到自己的应用中。...

    使用Flex调用webService开发一个天气预报服务

    通过Flex调用Web Service开发天气预报服务,我们可以利用Flex的强大UI设计能力和ActionScript的灵活性,结合Web Service的数据交换能力,实现跨平台的应用程序。这种技术在很多实际项目中都有广泛应用,比如构建交互...

    webservice接口调用天气预报例程

    在本文中,我们将深入探讨如何使用C# Winform应用程序调用公开的天气预报Web服务接口。对于初学者来说,这是一个很好的实践项目,可以帮助理解Web服务的使用以及如何将它们集成到桌面应用程序中。如果你对这个主题...

    webservice 实现天气预报功能

    Web服务(WebService)是一...通过研究这些文件,你可以更深入地了解如何实际操作这一过程,从而构建自己的天气预报应用。在实践中,还需要注意处理可能的异常情况,如网络问题、无效的SOAP响应等,确保应用的健壮性。

    天气预报 VC++ WebService

    【标题】"天气预报 VC++ WebService" 是一个基于Visual C++编程语言开发的应用程序,其核心功能是通过调用WebService来获取并显示实时的天气信息。WebService是一种基于Web的、能够提供跨平台交互能力的服务,它允许...

    c# winfrom 调用天气预报的webservice

    在WinForms应用中,我们经常需要与外部服务进行交互,比如获取天气预报数据。本篇将详细介绍如何在C# WinForms应用中调用WebService来获取今明两天的天气情况。 首先,了解WebService。WebService是一种基于Web的、...

    用C#写 的WebService天气预报功能

    在客户端应用中,可以使用C#的SoapHttpClientProtocol类(对于SOAP Web服务)或HttpClient类(对于RESTful服务)来调用这个天气预报的WebService,获取并显示天气信息。 总的来说,"用C#写 的WebService天气预报...

Global site tag (gtag.js) - Google Analytics