打造自己的天气预报Function----Web版
题外话:
本程序利用网络上发布的公共webservice endpoint
www.webxml.com.cn/WebServices/WeatherWebService.asmx
大致步骤是
1? 利用soap向webservice endpoint进行请求,取回请求结果
2? 把结果显示在web界面上,web界面采用Java+Jsp(呵呵,有点丑陋,篇幅所迫)
好,废话少说,直接进入核心程序讲解。
一? WeatherReport类??
??? 方法 1? 构造soap请求(请求格式请见上面的链接),用用户输入的城市名称镶在此请求里面
- //穿衣指数 ??
- ??????????s1?=?str.substring(str.indexOf("穿衣指数:"),str.indexOf("穿衣指数:")+4)?; ??
- ??????????s1Content?=?str.substring(str.indexOf("穿衣指数:")+5,str.indexOf("感冒指数:"))?; ??
- ??????????//感冒指数 ??
- ??????????s2?=?str.substring(str.indexOf("感冒指数:"),str.indexOf("感冒指数:")+4)?; ??
- ??????????s2Content?=?str.substring(str.indexOf("感冒指数:")+5,str.indexOf("晨练指数:"))?; ??
- ?????????? ??
- ??????????//晨练指数 ??
- ??????????s3?=?str.substring(str.indexOf("晨练指数:"),str.indexOf("晨练指数:")+4)?; ??
- ??????????s3Content?=?str.substring(str.indexOf("晨练指数:")+5,str.indexOf("交通指数:"))?; ??
- ??????????//交通指数 ??
- ??????????s7?=?str.substring(str.indexOf("交通指数:"),str.indexOf("交通指数:")+4)?; ??
- ??????????s7Content?=?str.substring(str.indexOf("交通指数:")+5,str.indexOf("中暑指数:"))?; ??
- ??????????//中暑指数 ??
- ??????????s4?=?str.substring(str.indexOf("中暑指数:"),str.indexOf("中暑指数:")+4)?; ??
- ??????????s4Content?=?str.substring(str.indexOf("中暑指数:")+5,str.indexOf("防晒指数:"))?; ??
- ??????????//防晒指数 ??
- ??????????s5?=?str.substring(str.indexOf("防晒指数:"),str.indexOf("防晒指数:")+4)?; ??
- ??????????s5Content?=?str.substring(str.indexOf("防晒指数:")+5,str.indexOf("旅行指数:"))?; ??
- ??????????//旅行指数 ??
- ??????????s6?=?str.substring(str.indexOf("旅行指数:"),str.indexOf("旅行指数:")+4)?; ??
- ??????????s6Content?=?str.substring(str.indexOf("旅行指数:")+5)?;??
程序运行效果见附件上的截图!!!运行附件:http://localhost:8080/yourProject/tianqi.jsp
好了,基本上核心代码就是上边那些了!不仅如此,加入我们想要在自己的系统里加入飞机票,火车票,股票信息等等之类的功能,只要有相应的webservice,我们都可以实现(呵呵,好像免费的少哦),各位有什么疑问,留言吧!!!
1 楼 jnn 2007-12-28 为什么还要自己生成解析 SOAP 消息包?现在服务简单你种方式可以处理,如果服务复杂,再需要SOAP Header认证,哪你这个程序就不好办了。
2 楼 rEloaD_cn 2007-12-28 最好还是用现成的SOAP引擎来解析,不然太麻烦了。
另外,免费的WetherWebService还是有不少的,国外一些网站就提供,只是都是英文 3 楼 jeasony 2008-11-04 非常感谢,学习中,测试过,可以,先收藏着 ,哈哈 4 楼 ipanel420 2011-12-08 我先收着了,多谢 啊