WebService通信调用天气预报,Java

时间:2022-09-29 10:37:09

天气预报实例:

首先,得知道天气预报的接口:

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

其次,调用接口,把接口服务端的代码导入到客户端:

1、把上面的链接输入浏览器地址栏,结果如下:

WebService通信调用天气预报,Java

WebService通信调用天气预报,Java


2、新建一个项目,在项目中新建一个WeatherWebService.wsdl文件,把上面浏览器中的代码黏贴到这个文件中

WebService通信调用天气预报,Java

3、选中WeatherWebService.wsdl文件,右键--Myeclipse--new webService Client..一直下一步到底,会自动生成cn.com.webxml包,

这里面就是我们需要的服务端的文件。(Eclipse生成方法大同小异)。注意:如果生成过程中报错,如:</s:schema>则把这个标签直接删掉,<br/>报错,则把<br>都改成<br/>。

还有一种也能得到服务器断文件的方法就是:在命令行输入

WebService通信调用天气预报,Java

如上即可生成客户端代码  :-p  【生成的文件地址】  extension(soap协议1.2版本得加次指令,不然生成报错)
生成的代码拷贝到你的项目中使用即可。

WebService通信调用天气预报,Java

4、写代码测试:

package test1;


import java.rmi.RemoteException;
import java.util.List;


import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWebService;
import cn.com.webxml.WeatherWebServiceSoap;


public class TestWeather {


public static void main(String[] args) throws RemoteException {
WeatherWebService ser = new WeatherWebService();
WeatherWebServiceSoap service = ser.getPort(WeatherWebServiceSoap.class);
invokeGetSupportProvince(service);
System.out.println();
System.out.println("..........................................");
invokeGetSupportCity(service);
System.out.println("...........................................");
invokeGetWeatherByOneCity(service);

}

// 调用获取支持的省份、州接口
  public static void invokeGetSupportProvince(WeatherWebServiceSoap service)throws RemoteException{
  ArrayOfString provinces = service.getSupportProvince();
  List<String> list = provinces.getString();
  System.out.println("总共有"+list.size()+"个地区");
  int count=0;
  for (String pro : list) {
if(0!=count&&count%5==0){
System.out.println();
}
System.out.print(pro+"\t");
count++;
}
  }
//调某个省城市的接口
  public static void invokeGetSupportCity(WeatherWebServiceSoap service)throws RemoteException{
  String provinceName="吉林";
  ArrayOfString city = service.getSupportCity(provinceName);
  List<String> list = city.getString();
  System.out.println(provinceName+"省有"+list.size()+"个市:");
  for (String s : list) {
System.out.println(s+"\t");
}
  }
//调用某个城市的天气
  public static void invokeGetWeatherByOneCity(WeatherWebServiceSoap service)throws RemoteException{
  String cityName="大安";
  ArrayOfString weather = service.getWeatherbyCityName(cityName);
  List<String> list = weather.getString();
  for (String we : list) {
System.out.println(we);
}
  
  }
}

5、运行结果:

总共有36个地区
直辖市 特别行政区 黑龙江 吉林 辽宁
内蒙古 河北 河南 山东 山西
江苏 安徽 陕西宁夏甘肃
青海 湖北 湖南浙江江西
福建 贵州 四川广东广西
云南 海南 ***
亚洲 欧洲 非洲北美洲南美洲
大洋洲
..........................................
吉林省有9个市:
长春 (54161)
吉林 (54172)
白山 (54371)
白城 (50936)
四平 (54157)
* (50946)
辽源 (54260)
大安 (50945)
通化 (54363)
...........................................
吉林
大安
50945
50945.jpg
2017-5-9 15:30:36
14℃/31℃
5月9日 晴
西南风4-5级转微风
0.gif
0.gif
今日天气实况:气温:30℃;风向/风力:南风 6级;湿度:22%;紫外线强度:很强。空气质量:良。
紫外线指数:很强,涂擦SPF20以上,PA++护肤品,避强光。
感冒指数:少发,感冒机率较低,避免长期处于空调屋中。
穿衣指数:炎热,建议穿短衫、短裤等清凉夏季服装。
洗车指数:较不宜,风力较大,洗车后会蒙上灰尘。
运动指数:较适宜,风力较强且气温较低,请进行室内运动。
空气污染指数:良,气象条件有利于空气污染物扩散。


13℃/28℃
5月10日 晴
西风微风
0.gif
0.gif
7℃/23℃
5月11日 晴转多云
西北风微风
0.gif
1.gif
大安市位于吉林省西北部,地处松嫩平原腹地。在东经123°08′45″至124°21′56″,北纬44°57′00″至45°45′51″之间,属中温带季风气候,全年日照时数平均为3012.8小时,年平均气温4.3℃,年平均积温2921.3℃,年平均降雨量为413.7毫米。大安市距长春、哈尔滨、齐齐哈尔、大庆等城市较近,借助铁、公、水路联运,经济辐射可达吉林省中西部地区,黑龙江省嫩江地区,辽宁省西北部地区和内蒙古东部地区。大安市处在嫩江流域中心城市和吉林省对外开放的前沿位置上,是联结东北三省一区及中、俄、日三国的交通枢纽和商品集散地。全市东西长95公里,南北宽90公里,总面积为4879平方公里。景点:瀚海明珠月亮湖清夏盛地大安港天然猎场东沟等。