`

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应用程序

    这是一个android远程调用天气预报Webservice,内有图片显示,采用了ksoap2连接方式,简单易懂,可运行查看。

    天气预报webservice应用

    winfrom调用天气webservice,第一次默认加载当前地区天气。本例子共同学习,这个webservice每天有使用限制,和请求速度的限制。

    天气预报查询webservice课程设计.doc

    c# asp.net开发的web service 天气预报查询软件

    基于C/S和WebService的天气预报系统

    本程序是C#的Windows窗体应用程序,调用远程的免费WebService实现天气预报功能。WebService越来越流行,应用日益广泛,值得我们去深入的学习和掌握。

    android下WebService天气预报解析

    代码可以直接运行,如果报错请看我的博客 http://blog.csdn.net/wang6279026/article/details/8098100 里面有解决办法

    Android应用源码调用webservice实现天气预报带论文.zip

    本项目是一个天气预报项目源码,可以设置城市、可以更换应用内背景图片、自带天气widget小组件等,天气信息由m.weather.com.cn提供,比较给力的是本项目自带一个20多页的设计论文,比较适合新手学习和参考。...

    毕业论文答辩-Android应用源码调用webservice实现天气预报+源码+论文文档

    本项目是一个天气预报项目源码,可以设置城市、可以更换应用内背景图片、自带天气widget小组件等,天气信息由m.weather.com.cn提供,比较给力的是本项目自带一个20多页的设计论文,比较适合新手学习和参考。...

    C# winform 获取天气信息webservice

    用VS2005工具C#语言webservice技术,获取城市天气信息的应用程序

    Webservice

    气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client). 网站提供了天气预报的服务,但其实它们什么也...

    webservice概述 及 小例子

    详细讲述了 webservice 附带 小案例 让您轻松理解webservice

    Android应用源码调用webservice实现天气预报带论文

    适合新手参考,内附设计文档可以参考,代码都有详细的注释,想了解的Web Service的朋友可以看看

    建立Webservice实例

    webservice使用xml和xsd来描述内部一些配置,xml和xsd是webservice基本数据格式 wsdl(webservice description language),它使用的全是xml和xsd。它描述了webservice中一些方法访问的契约(规范),谁都遵守该规范,...

    webservice运用案例

    一个通过WEBSERVICE实现异步登陆验证的例子。

    Android 天气预报应用(完整源码,导入即可)

    完整工程代码,导入即可。 1.使用ksoap2实现webservice接口调用...3.对ListActivity,ListView,Bundle,Intent等的应用,可以做代码样例使用。 4.程序分包:activity,dao,service,domain,VO,common等,层次清楚。

    webservice简单实现

    webservice简单实现,不需要建立复杂的框架即可正常客户端访问服务端

    天气小秘书(winform中webService的应用)

    利用webService实现天气查询和预报,并且带有通讯录功能,(还有一个附加功能就是在插入优盘时可以将优盘中的东西拷入你的本地计算机,可不要做违法的事情哦)这个是源码,希望能给大家在学习的时候一些帮助

    webservice教程

    amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,往大的概念上吹,就是所谓的SOA应用。...

    WebService介绍(一):创建WebService

    创建WebService

    Android天气预报

    使用webService实现的天气预报,包含百度定位功能,应用会自动定位用户的当先位置进行天气的查询,用户可以选择城市,应用中根据近些日的天气自动画出折线趋势,同时还有生活指数和手动刷新的功能。

    webservice

    web开发 web service翻译... 现在很多网站都有天气预报的功能,这个功能的实现就用到了web service. 气象服务提供者提供web service用户jar包,应用者在项目中导入该jar包,并应用里面的远程接口来调用web service服务器里

Global site tag (gtag.js) - Google Analytics