互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取股票数据和天气预报为例进行学习。

这是一些WebService免费服务接口,供大家学习参考:http://blog.csdn.net/jingqia/article/details/17398673

  有了之前的基础,学习起来难度就变得没那么高了!

一、 调用免费的web service获取股票信息

1.找到股票的服务网址:http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx

接着输入:http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx?wsdl,在原来的网址后面加?wsdl即可

2.新建javaWeb项目stock_test打开命令窗口输入:wsimport -s E:\\workingFoilder\\projectSpace\\stock_test\\src -p com.wxzz.client -keep http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx?wsdl回车生成相关类信息,如图,警告可以忽略,不报错就可以了

刷新项目,可以看到包下生成了很多类

根据生成的类,编写相关代码

 package com.wxzz.test;
import java.util.List;
import com.wxzz.client.ArrayOfString;
import com.wxzz.client.ChinaStockWebService;
import com.wxzz.client.ChinaStockWebServiceSoap;
public class Test {
public static void main(String[] args) {
//调用股票服务
ChinaStockWebService service=new ChinaStockWebService();
//创建ChinaStockWebServiceSoap对象
ChinaStockWebServiceSoap serviceScope=service.getChinaStockWebServiceSoap();
//获取股票数据
ArrayOfString aos=serviceScope.getStockInfoByCode("sz601169");
//遍历股票信息
List<String> list=aos.getString();
for(String str:list){
System.out.println(str);
System.out.println("+----+");
}
}
}

运行程序,结果如下:

结果不是想要的,可能是股票数据给服务关闭的原因吧!

为了进一步测试,这个服务中有几个方法,大家可以自己测试,我进行了返回字节图片的测试

代码如下:

服务接口:

 package com.wxzz.service;

 /**
* @author wangsj
*
*/
public interface StockService {
//显示股票走势图片
public byte[] getStockByte(String stockCode); }

服务接口实现类:

 package com.wxzz.service;
import com.wxzz.client.ChinaStockWebService;
import com.wxzz.client.ChinaStockWebServiceSoap; /**
* @author wangsj
*
*/
public class StockServiceImpl implements StockService { @Override
public byte[] getStockByte(String stockCode) {
ChinaStockWebService service=new ChinaStockWebService();
ChinaStockWebServiceSoap serviceScope=service.getChinaStockWebServiceSoap();
return serviceScope.getStockImageByteByCode(stockCode); } }

控制层:

 package com.wxzz.servlet;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.wxzz.service.StockServiceImpl; public class GetStockImageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private StockServiceImpl ss=new StockServiceImpl(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
byte[]b=ss.getStockByte("sh601169");
response.setHeader("content-type", "image/jpeg");
OutputStream os=response.getOutputStream();
os.write(b);
} }

输入网址:http://localhost:7001/stock_test/GetStockImageServlet出现以下结果

出现了股票走势图,验证正确!

二、 调用免费的web service获取天气预报信息

1.步骤还是一样,首先找到天气预报接口网址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx输入浏览器可以看到以下信息:

然后输入http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl获取以下信息:

2.新建项目weather_test,然后打开命令窗口,执行 E:\\workingFoilder\\projectSpace\\weather_test\\src -p com.wxzz.client -keep http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

出现了错误,经过查资料发现由于运行结果显示,由于要调用的WebService是用.net写的,这个是Java调用net的webservice都有的问题,这个问题的解决办法如下:

1)在http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl打开的页面空白处点右键另存为,把后缀名改为.wsdl,保存即可,注意保存的路径

2)使用EditPlus或其他文本编辑器打开该文件,将<s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

3)再次打开命令窗口输入:wsimport -s E:\\workingFoilder\\projectSpace\\weather_test\\src -p com.wxzz.client -keep D:\WeatherWebService.asmx.wsdl,回车编译通过

刷新项目,可以看到各类信息如下:

3、新建测试类,进行测试

查看API可以看到各个方法的用法

测试代码如下:

 package com.wxzz.test;
import java.util.List;
import com.wxzz.client.ArrayOfString;
import com.wxzz.client.WeatherWebService;
import com.wxzz.client.WeatherWebServiceSoap; /**
* @author wangsj
*
*/
public class TestWeather {
public static void main(String[] args) {
//获取服务
WeatherWebService weatherService=new WeatherWebService();
WeatherWebServiceSoap soap=weatherService.getWeatherWebServiceSoap();
ArrayOfString arrayOfString=soap.getWeatherbyCityName("北京");
//遍历结果
List<String> list=arrayOfString.getString();
for(String str:list){
System.out.println(str);
System.out.println("**************");
}
}
}

运行结果如下:结果比较多

直辖市
**************
北京
**************
54511
**************
54511.jpg
**************
2017-4-27 16:00:35
**************
13℃/28℃
**************
4月27日 晴
**************
北风4-5级转微风
**************
0.gif
**************
0.gif
**************
今日天气实况:气温:28℃;风向/风力:西北风 5级;湿度:7%;紫外线强度:强。空气质量:良。
**************
紫外线指数:强,涂擦SPF大于15、PA+防晒护肤品。
感冒指数:较易发,风较大,较易发生感冒,注意防护。
穿衣指数:热,适合穿T恤、短薄外套等夏季服装。
洗车指数:较不宜,风力较大,洗车后会蒙上灰尘。
运动指数:较适宜,风力稍强,推荐您进行室内运动。
空气污染指数:良,气象条件有利于空气污染物扩散。 **************
14℃/30℃
**************
4月28日 晴
**************
北风3-4级转微风
**************
0.gif
**************
0.gif
**************
16℃/32℃
**************
4月29日 晴
**************
南风3-4级转北风微风
**************
0.gif
**************
0.gif
**************
北京位于华北平原西北边缘,市中心位于北纬39度,东经116度,四周被河北省围着,东南和天津市相接。全市面积一万六千多平方公里,辖12区6县,人口1100余万。北京为暖温带半湿润大陆性季风气候,夏季炎热多雨,冬季寒冷干燥,春、秋短促,年平均气温10-12摄氏度。北京是世界历史文化名城和古都之一。早在七十万年前,北京周口店地区就出现了原始人群部落“北京人”。而北京建城也已有两千多年的历史,最初见于记载的名字为“蓟”。公元前1045年北京成为蓟、燕等诸侯国的都城;公元前221年秦始皇统一中国以来,北京一直是中国北方重镇和地方中心;自公元938年以来,北京又先后成为辽陪都、金上都、元大都、明清国都。1949年10月1日正式定为中华人民共和国首都。北京具有丰富的旅游资源,对外开放的旅游景点达200多处,有世界上最大的皇宫紫禁城、祭天神庙天坛、皇家花园北海、皇家园林颐和园,还有八达岭、慕田峪、司马台长城以及世界上最大的四合院恭王府等各胜古迹。全市共有文物古迹7309项,其中国家文物保护单位42个,市级文物保护单位222个。北京的市树为国槐和侧柏,市花为月季和菊花。另外,北京出产的象牙雕刻、玉器雕刻、景泰蓝、地毯等传统手工艺品驰誉世界。
**************

三、 总结

通过案列可以总结出,使用第三方的WebService接口,大致分为以下几个步骤:

1.首先获取第三方接口地址,访问API熟悉里面的方法怎么用

2.在网址后面添加?wsdl继续进行访问,如果能访问通过,表示可用

3.在项目中创建需要引入WebService服务的位置,即这些服务需要放的位置,一般都在服务层供调用

4.打开命令窗口借助jdk的wsimort.exe工具wsimport 命令生成相应的服务层(客户端)代码,如果出现错误,及时解决

5.调用服务层代码,编写客户端程序

WebService学习--股票走势图+天气预报实现的更多相关文章

  1. 【转】使用Python matplotlib绘制股票走势图

    转载出处 一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使 ...

  2. matplotlib绘图股票走势图实践

    导入模块 import pandas as pdimport numpy as npfrom pandas import Series,DataFrameimport matplotlib.pyplo ...

  3. WPF Devexpress 控件库中ChartControl 实现股票分时走势图

    概要 从事金融行业开发 ,会接触些图表控件,这里我分享一下自己基于DevExpress.Charts.v16.2开发的股票分时走势图的经验. 附上源码:点击跳转 如果需要讨论,Q群:580749909 ...

  4. WebService学习总结(6)——WebService常用接口

    商业和贸易:1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSer ...

  5. 用C#开发的双色球走势图(二)

    昨晚由于时间的原因只写了一部分内容,今天将这一部分内容补充完毕,多谢各位园友的支持. 这是用C#开发的双色球走势图(一)新的园友可以看昨晚写的内容,以免脱节.首先回复园友的评论,有说好的有说不好的,本 ...

  6. WebService学习笔记系列(二)

    soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...

  7. Html5 canvas 绘制彩票走势图

    因须要 要实现一个类似彩票走势图的功能,初次学Html5 ,非常多地方不明白,前段时间也发帖请教过这个问题.也是没给个明白说话,在网上搜了非常多,也没有实现的样例,今天细致研究了下.发现事实上也不是非 ...

  8. !! A股历史平均市盈率走势图

    http://value500.com/PE.asp 一. A股历史平均市盈率走势图 *数据来源:上海证券交易所 分享到: 354 - 上海A股 深圳A股更新时间 2017年6月7日 2017年6月7 ...

  9. 用C#开发的双色球走势图(原创)值得园友拥有(二)接上一篇

    昨晚由于时间的原因只写了一部分内容,今天将这一部分内容补充完毕,多谢各位园友的支持. 这是用C#开发的双色球走势图(原创)值得园友拥有 新的园友可以看昨晚写的内容,以免脱节.首先回复园友的评论,有说好 ...

随机推荐

  1. 《Machine Learning》系列学习笔记之第二周

    第二周 第一部分 Multivariate Linear Regression Multiple Features Note: [7:25 - θT is a 1 by (n+1) matrix an ...

  2. ps人物像发丝的抠图处理

    1-复制图层——使用快速选择工具——添加选区(包含发丝)——调整边缘 2- 提高半径(尽量高)——降低移动边缘——输出到新建图层 这个时候,我们发现人物的很多地方是透明的,不用担心,因为我们这一步先是 ...

  3. java操作txt文本(二):删除文本括号内的内容

    想法由来:之前写读书报告时,遇到一些烦人的文献,总喜欢把注释作为括号内容放到正文中,使文章繁琐冗长,所以写了下面这个代码,剔除了括号内的内容. 适用条件:原txt文本中的括号使用正确,即左右括号匹配正 ...

  4. CSS中清除浮动的方法

    CSS浮动,最早是为了达到文字环绕的效果提出的,也可以用来做布局,但是布局会产生很多问题(高度塌陷,漂浮在普通流上),会使当前标签产生上浮的效果,会影响前后标签,同样的代码在不同的浏览器的兼容性也不一 ...

  5. css的存在方式和选择器

    css的存在方式 元素内联 页面嵌入 外部引入 元素内联 直接在html的标签中定义样式,类似于: <div style="属性1;属性2;属性3"><div&g ...

  6. 通用数据库帮助类DBHelper(含log日志信息实时记录)

    项目需要,需要一个通用的数据库操作类,增删改查.事务.存储过程.日志记录都要有,于是在已有的帮助类上做了一些改进,并将log4j的.NET版--log4net嵌入其中记录sql的执行环境和状态. 用起 ...

  7. webpack使用总结

    我们可以在js中引入样式文件 require('myStyle.css') 这时我们便需要引入相应的webpack loader来帮助我们解析这段代码. 一般来说需要引入css-loader和styl ...

  8. websocket 项目应用

    序言 很早就想用起来websocket,可惜需要后台服务的支持,技术的翻新总会给我带来巨大的冲击,最近后端人员学习了websocket相关后台技术.于是我们开始动起来了. 学习 这位大兄弟的文章  h ...

  9. oracle查询锁表解锁语句

    --oracle查询锁表解锁语句--首先要用dba权限的用户登录,建议用system,然后直接看sql吧 --1. 如下语句 查询锁定的表: SELECT l.session_id sid, s.se ...

  10. 程序员的基本功之Java集合的实现细节

    1.Set集合与Map 仔细对比观察上面Set下和Map下的接口名,不难发现它们如此的相似,必有原因 如果只考察Map的Key会发现,它们不可以重复,没有顺序,也就是说把Map的所有的Key集中起来就 ...