天气预报服务的调用

本文介绍了两种调用WebService服务的方法,用于获取天气预报。首先,通过Axis2插件在Eclipse或IDEA中生成本地代理文件,然后编写客户端类WeatherTest进行调用。其次,使用SOAP消息直接发送HTTP请求,返回结果为SOAP消息,可解析为XML文件。
摘要由CSDN通过智能技术生成

源自我的个人博客:heysen.xyz
资源地址:http://www.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
这里提供两种调用WebService服务的方法,过程中axis2的依赖包需自行添加。

通过axis2插件生成本地代理文件

axis2的安装使用自行搜索,这里提供一个转载的别人的链接。之后在Eclipse(idea也可)新建一个工程,将资源地址的wsdl文件下载copy到工程里面,利用axis2生成本地代理,如下图:


接着写一个客户端类WeatherTest用来调用服务

public class WeatherTest {
   
	public static void main(String[] args) throws ServiceException, RemoteException {
   
		WeatherWSLocator locator = new WeatherWSLocator();
		WeatherWSSoapStub service = (WeatherWSSoapStub) locator.getPort(WeatherWSSoapStub.class);
		invokeGetSupportProvince(service);
		invokeGetSupportCityString(service);
		invokeGetWeather(service);
	}

	// 调用获取支持的省份、州接口
	private static void invokeGetSupportProvince(WeatherWSSoapStub service) throws RemoteException {
   
		// TODO Auto-generated method stub
		String[] provices = service.getRegionProvince();
		System.out.println("总共" + provices.length + "个区域省");
		int count = 0;
		for (String str : provices) {
   
			if (0 != count && count % 5 == 0) {
   
				System.out.println();
			}
			String regEx = "(.*?),(\\d+)";
			Pattern pattern = Pattern.compile(regEx);
			Matcher matcher = pattern.matcher(str);
			if (matcher.find()) {
   
				System.out.print(matcher.group(1) + "\t");
				count++;
			}
		}
		System.o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值