在C 中创建并使用Web服务
2008-02-23 05:25:04来源:互联网 阅读 ()
这就是隐藏在WEB服务背后的基本观念。但把代码当作函数而非页面,您该如何将参数传递给函数?假如他返回一个复杂的数据类型怎么办?假如一个WEB服务器上提供多于一种WEB服务怎么办?您如何找出那些名字并确认所需要的是哪种服务?这就是本文所要说明的问题。使用类似于WEB服务描述语言(说wizdle会更酷一些)研发有一定的标准,他们涵盖了这些技术细节。假如您用Visual Studio.NET创建一个WEB服务,他将满足这些标准。假如您只是需要WEB服务,而不管他是如何创建的,通过Visual Studio.NET,您会发现借用他人的代码是如此简单。
编写一个WEB服务
为了编写一个WEB服务,您至少要用一种方法写一个类。这个类必须有WebService属性,方法也要有WebMethod属性。举例来说,一个类能够代表一位客户,并且有一个能够获知客户船运信息的方法,或是能够在客户购物单上增加新物品的方法。WEB方法能够接受和返回任何可用的类型,包括您定义的对象实例。他们能做任何事情:维护数据库数据的内外一致性,做任何形式的运算,甚至调用另外一个WEB方法来完成任务。为了说明这一点,我将用Add的方法写一个CalculatorService类,如您所猜得那样,将两个数字加起来并返回他们的和。
我在Visual Studio.NET中创建了一个新工程。在Visual C 工程模板中,我选择了可管理的WEB服务。我将工程命名为Calculator。产生的代码包括了一个Class1类——虽然我能够在类的列表中选中他,并在属性窗口总改变他的名字,但我做的第一件事还是手工地将这个名字的.cpp文档和.h文档都改成了CalculatorService。(我努力避免类和名字空间重名,他会使Intellisense弄混)不管我怎么样取名,我必须手动的对文档Calculator.asmx作更改,我在Solution Explorer中双击他然后修改。修改后是:
<@ WebService Class=Calculator.CalculatorService %> |
我获得了一个叫做HelloWorld()的方法,把他改成Add()很简单——我仅仅更改了.cpp文档和.h文档的名称,改变了签名以便他能够接受浮点数,然后加了些代码以返回和。
类声明的结束部分:
using <System.Web.Services.dll> using namespace System; using namespace System::Web; using namespace System::Web::Services; namespace Calculator { public __gc class CalculatorService : public WebService { public: [System::Web::Services::WebMethod] double Add(double x, double y); }; } |
实现的部分:
#include "stdafx.h" #include "Calculator.h" #include "Global.asax.h" namespace Calculator { double CalculatorService::Add(double x, double y) { return x y; } } |
假如您是一直在跟着我做,您就能选择“开始”菜单中的DEBUG来测试代码。您并没有真正运行一个WEB服务,但这会开启一个WEB浏览器并将Calculator.asmx加载进去。这是个真正应用您定义的类和方法的在WEB服务器上运行的文档,假如您愿意,打开一个浏览器窗口,输入这个URL:http://localhost/Calculator/Calculator.asmx。假如碰到任何问题,您要确定,您的WEB服务器已启动,而且浏览器并没有使用代理服务器。在代理服务器上,localhost是代理服务器,而不是您的机器。您能够打开Add的链接看看为方法所生成的文档,甚至能够通过键入数字并点击执行按钮来测试。这时,将打开另一个浏览器窗口以显示您需要的包围在XML中的结果。比如,我输入2和3,得到如下XML:
<?xml version="1.0" encoding="utf-8" > <double xmlns="http://tempuri.org/">5</double> |
2加3等于5,WEB服务看起来是在工作。
使用WEB服务
写一个WEB服务相当简单:您只需要一个类属性,一个方法属性和calculator.asmx文档,而这三个都由Visual Studio生成。假如只需其中一个会更简单。开头我建立了一个叫CalcTest to的可管理的C 程式。在能够使用WEB服务之前,您需要让您的工程知道去哪里找到他。我在Solution Explorer中右键单击CalcTest工程,然后选择添加WEB参数。添加WEB参数的对话框有一个可编辑框让您输入URL。您也能用目录在INTERNET或是自己的测试机器上寻找WEB服务。
最简单的方法是键入URL到Calculator.asmx然后按回车。您会看到和以前运行WEB服务工程时同样的文档。点击添加参数结束这个过程。
参数一旦添加,调用WEB服务就像调用任何C 类相同。添加参数建立一个头文档,这个文档在任何您想使用WEB服务时都能够包括进去。我把输出Hello World的行替换成了创建代表我的WEB服务的对象和使用他的代码。更改过的CalcTest.cpp文档是这样的:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 利用C 模板编写的序列化框架
下一篇: C 代码优化
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash