文章教程

16.5Web服务应用

8/31/2020 9:52:39 PM 人评论 次浏览

16.5 Web服务应用

Web服务技术应用比人们预想的要广泛。许多大公司已经开始使用Web服务来通过互联网连接公司数据库和其他公司的数据系统,特别是用于改进客户服务和供应链。Web服务包括企业内部和外部交易、B2B以及B2C业务等,使用多种标准,允许不同软件组件之间相互通信。

16.5.1 使用存在的Web服务

使用存在的Web服务是指使用在互联网上由服务供应者提供的各种功能性的Web服务,比如查询某地的天气预报、查询火车时刻表等等。

【实例16-2】使用网上提供的Web服务

本实例借助于提供证券行情的Web服务,通过股票代码查询相关沪深两市的股票即时价格信息并显示在页面中,具体实现步骤如下:

01 启动Visual Studio 2012,创建一个ASP.NET Web空应用程序,命名为“实例16-2”。

02 用右键单击该网站名称,在弹出的快捷菜单中选择“添加服务引用”选项,打开“添加服务引用”对话框,单击“高级”按钮,在弹出的“服务引用设置”对话框中单击“添加Web引用”按钮,弹出如图16-21所示的“添加Web引用”对话框。

alt

图16-21 “添加Web引用”对话框

03 在URL地址栏中输入提供Web服务的地址:http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx,单击“前往”按钮。进入服务操作列表窗口。服务详情窗口中共列出了5个获取股票行情的操作,这里需要用到的是其中一个获得中国股票及行情的操作getStockInfoByCode。

输入参数theStockCode=股票代号,如sh000001;返回数据为一个一维字符串数组String(24),结构为String(0)股票代号、String(1)股票名称、String(2)行情时间、String(3)最新价(元)、String(4)昨收盘(元)、String(5)今开盘(元)、String(6)涨跌额(元)、String(7)最低(元)、String(8)最高(元)、String(9)涨跌幅(%)、String(10)成交量(手)、String(11)成交额(万元)、String(12)竞买价(元)、String(13)竞卖价(元)、String(14)委比(%)、String(15)-String(19)买一-买五(元)/手、String(20)-String(24)卖一-卖五(元)/手。应用程序中根据这个操作的要求对应编写调用的方法即可。

04 测试该服务是否能正常使用,单击getStockInfoByCode链接,进入如图16-22所示测试窗口。

alt

图16-22 测试窗口

05 根据说明在参数theStockCode后的文本框中输入要查询股票的完整代码sh600543,单击“调用”按钮,在浏览器中出现如图16-23所示的XML格式测试结果页面,显示了所查询股票的即时行情信息。

alt

图16-23 测试结果页面

06 通过测试说明此Web服务能够正常使用,最后在前图16-22的“Web引用名”文本框中输入localhost,单击“添加引用”按钮,完成Web服务的创建。

07 在网站根目录下创建名为Default.aspx的窗体文件。

08 单击Default.aspx文件,打开“视图设计器”,进入到“源视图”,在<form>和</form>标记间添加如下代码:

alt

上面的代码中第1行添加一个服务器文本框控件TextBox1,用于被用户输入股票的代码。第2行添加了一个服务器按钮控件Button1用于提交查询的请求。第5、7、9、11、13行分别添加一个服务器标签控件,用于显示查询的各项股票行情的结果。

09 单击网站根目录下的Default.aspx.cs文件,编写关键代码如下:

alt

上面的代码中第1行定义处理提交按钮Button1单击事件Clink的方法。第2行实例化Web服务ChinaStockWebService的对象csw。第3行定义一个字符串数组对象stock,通过调用Web服务中的getStockInfoByCode方法获得所要查询股票的即时行情信息。第4行~第9行分别将要显示的各种股票具体信息,如最高、最低、成交额等在标签控件上显示。

10 按快捷键Ctrl+F5运行程序,效果如图16-24所示。输入要查询股票的完整代码,单击“查询”按钮,显示该股票的各种行情信息。

alt

图16-24 运行结果

16.5.2 Web服务实现数据库操作

除了使用已经存在的Web服务以外,大多数的时候需要创建特定的Web服务在特定的网络应用程序运用,比如对网页中数据库的操作等。

【实例16-3】Web服务操作数据库

本实例演示在程序中如何调用Web服务中的DataSet对象以获取第6章创建的数据表tb_News中的新闻信息,具体实现步骤如下:

01 启动Visual Studio 2012,创建一个ASP.NET Web空应用程序,命名为“实例16-3”。

02 用右键单击应用程序名“实例16-3”,在弹出的快捷菜单中选择“添加”|“添加新项”命令。弹出“添加新项”对话框,选择“已安装模板”下的“Visual C#”模板,并在模板文件列表中选中“Web服务”,然后在“名称”文本框输入该文件的名称WebService.asmx,最后单击“添加”按钮。

03 单击生成的WebService.cs文件,编辑以下代码。

alt

上面的代码中第1行添加了一个名为WebMethod的属性,该属性用来标志方法可以被远程的客户端访问。第2行定义了获得从数据库查询客户信息结果的方法getQuery。第3行定义数据库连接字符串。第4行定义创建数据库连接对象con。第5行创建数据库命令对象cmd。第6行打开数据库连接。第7行创建SqlDataAdapter对象sda。第8行创建DataSet对象ds,第9行调用ds对象的Fill方法将查询的结果填充到数据集,第10行关闭数据库连接,第11行返回数据集对象ds。

04 在网站根目录下添加一个名为Defaule.aspx的窗体文件。

05 单击Default.aspx文件,打开“视图编辑”界面,进入“设计”视图,从“工具箱”中拖动一个Button控件和一个GridView控件到编辑区中,设计后的界面如图16-25所示。

alt

图16-25 设计的界面

06 用右键单击该网站名称,在弹出的快捷菜单中选择“添加服务引用”选项,打开“添加服务引用”对话框,单击“高级”按钮,在弹出的“服务引用设置”对话框中单击“添加Web引用”按钮,弹出“添加Web引用”对话框,选择“此解决方案中的Web服务”,单击WebService服务名称。修改Web引用名为localhost,单击“添加引用”按钮。

07 双击网站目录下的Default.aspx.cs文件,编写关键代码如下:

alt

上面的代码中第1行定义处理“获取”按钮控件单击事件的方法。第2行实例化Web服务对象ws。第3行调用Web服务中的方法getQuery获得查询结果集对象。第4行将结果集对象作为GridView控件的数据源。第5行调用GridView控件的DataBind方法绑定数据并显示。

08 按快捷键Ctrl+F5运行程序,效果如图16-26所示。单击“获取”按钮,显示tb_News表中的数据信息。

alt

图16-26 运行结果

教程类别