webservice通信调用天气预报接口实例

转载:http://www.cnblogs.com/warrior4236/p/5668449.html

一:环境搭建

1:新建一个java project工程weatherInf

2:引入相应的jar包

activation.jar
axis-ant.jar
axis.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mail.jar
saaj.jar
wsdl4j-1.5.1.jar

下载axis 1.4 src压缩包,解压后到webapp/web-info/lib下取包,具体路径如下:

http://download.csdn.net/detail/yyg64/5351114

其中mail.jar 以及 activation.jar 可到如下路径下载:

http://download.csdn.net/detail/dbhunter/398258

3:将天气预报接口wsdl文件拷贝到src目录下

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

二:目录结构

三:根据wsdl文件生成客户端代码

wsdl文件——右键——web services——Generate Client,然后一路next到finish。

会生成如下客户端代码:

四:测试代码

 1 /**
 2  *
 3  */
 4 package com.paic.services;
 5
 6 import java.rmi.RemoteException;
 7
 8 import javax.xml.rpc.ServiceException;
 9
10 import cn.com.WebXml.WeatherWebServiceLocator;
11 import cn.com.WebXml.WeatherWebServiceSoapStub;
12
13 /**
14  * @author Administrator
15  *
16  */
17 public class TestWeather {
18     public static void main(String[] args) throws ServiceException,
19             RemoteException {
20         WeatherWebServiceLocator locator = new WeatherWebServiceLocator();
21         WeatherWebServiceSoapStub service = (WeatherWebServiceSoapStub) locator
22                 .getPort(WeatherWebServiceSoapStub.class);
23         invokeGetSupportProvince(service);
24         System.out.println("...................");
25         invokeGetSupportCity(service);
26         invokeGetWeatherByOneCity(service);
27     }
28
29     // 调用获取支持的省份、州接口
30     public static void invokeGetSupportProvince(
31             WeatherWebServiceSoapStub service) throws RemoteException {
32         String[] provices = service.getSupportProvince();
33         System.out.println("总共" + provices.length + "个");
34         int count = 0;
35         for (String str : provices) {
36             if (0 != count && count % 5 == 0) {
37                 System.out.println();
38             }
39             System.out.print(str + "\t");
40             count++;
41         }
42     }
43
44     // 调用获取支持查询某个省份内的城市接口
45     public static void invokeGetSupportCity(WeatherWebServiceSoapStub service)
46             throws RemoteException {
47         String provinceName = "江苏";
48         String[] cities = service.getSupportCity(provinceName);
49         System.out.println("总共" + cities.length + "个市");
50         for (int i = 0; i < cities.length; i++) {
51             if (0 != i && i % 5 == 0) {
52                 System.out.println();
53             }
54             System.out.print(cities[i] + "\t");
55         }
56     }
57
58     // 调用查询某个城市天气的接口
59     public static void invokeGetWeatherByOneCity(
60             WeatherWebServiceSoapStub service) throws RemoteException {
61         String cityName = "南京";
62         String[] weatherInfo = service.getWeatherbyCityName(cityName);
63         for (String str : weatherInfo) {
64             System.out.println(str);
65         }
66     }
67 }

五:得到结果

时间: 2024-10-06 12:37:20

webservice通信调用天气预报接口实例的相关文章

关于Silverlight调用天气预报接口问题

问题:因Silverlight客户端不能直接调用webservice接口(外网天气接口),调用会出现跨域访问的问题,即使添加了跨域文件也不好使.解决方法如下 解决方法一:1.在服务端建立一个wcf服务端,在wcf里调用webservice接口(外网天气接口) wcf服务接口IWeatherService.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Runtim

调用天气预报接口

方案一: 浏览器由于安全的限制,不允许跨域访问.但是PHP服务器是允许的.我们可以通过使用PHP文件做代理,通过PHP来调用接口. 详细接口分析可参看:http://www.cnblogs.com/wangjingblogs/p/3192953.html 返回JSON格式 PHP代码 <?php //此接口返回json格式 echo file_get_contents('http://www.weather.com.cn/data/cityinfo/101181601.html'); ?> H

【黑马Android】(14)webservice概念/调用/wsdl接口

webservice 的概念 webservice 就是一个应用程序,它提供一种通过web方式访问的api. 解决两个系统或者(应用程序)之间的远程调用..... 调用是跨语言,跨平台... webservice 最基本的组成部分就是客户端,服务端... MyServerSocket.java package cn.itcast.server; import java.io.IOException; import java.io.InputStream; import java.net.Serv

java使用WebService实现调用天气预报功能【超详细】

1.首先建立一个web project  ,我起的名字:weatherInf  [我用的编译器是MyEclipse] 2.在src下新建一个file 起名:WeatherWebService.wsdl,将该链接中的代码  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl  粘到新建的file中去. 从<wsdl:definitions标签开始,一直到该标签结束. 3.正常情况下粘贴完都会出现错误,我的是出现标签错误,

项目中调用天气预报接口

项目中使用的是心知天气的API,下面我就简单总结一下使用的过程: 1. 在心知天气官网注册一个个人账号,这样就会产生一个API秘钥和一个用户ID,用户ID用于签名验证方式.签名指的是通过HMAC-SHA1,对请求参数加密后得到的签名字串进行身份验证,避免了将API密钥明文包含在请求中而造成泄露. 2. 关于签名生成方式如下: (1)构造验证参数字符串 将请求参数按照参数名字典升序排列后,把所有参数param=value用&连接起来,类似URI中Query string的构造方式.目前支持的参数有

调用saltapi接口实例

1.编写python脚本请求salt api接口 自定义一个类,首先初始化时候获得token,然后使用token认证去请求相应的json文件. salt命令在shell中使用方式是salt 客户端 方法 参数(例子:salt 'client' cmd.run 'free -m'). 这里salt命令方法我们已经封装好了,想使用salt的什么方法就传入对应的客户端.方法.参数即可. 示例:saltapi.py #定义modules和runner接口 import jsonimport reques

Java调用免费的WebService示例【天气预报】【国内手机号码归属地查询】

1.免费的WebService地址:http://www.webxml.com.cn/zh_cn/index.aspx 提供了例如:天气预报,手机归属地查询等很多Web服务. 2.调用天气预报服务示例: 使用JDK自带的wsimport命令生成客户端代码: wsimport -keep http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 发现抛出如下异常: 后来在网上找到了http://blog.sina.com.cn/

php webservice 接口 实例 机票航班时刻表

<?php header('Content-Type: text/html; charset=UTF-8'); $client = new SoapClient('http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl'); $fromcity=!empty($_POST['fromcity']) ? trim($_POST['fromcity']) : '长沙'; $tocity=!empty($_POST['

C#调用国家气象局天气预报接口

原文:C#调用国家气象局天气预报接口 一.需求 最近,刚好项目中有天气预报查询功能的需求,要求录入城市名称,获取该城市今日天气信息及相关气象生活辅助信息等. 例如:查询北京市天气 结果为: 今日北京天气:15℃~5℃ 阵雨转阴,北风3-4级,天气冷,建议着棉服.羽绒服.皮夹克加羊毛衫等冬季服装.年老体弱者宜着厚棉衣.冬大衣 或厚羽绒服. 洗车指数:不宜.紫外线指数:最弱.晨练指数:较不宜.舒适指数:较舒适. 还好,国家气象局提供相关接口,再此表示感谢,虽然个人觉得该api设计思路有待提高,但是相