NET 怎样调用WebServices

本文详细阐述了在不同客户端类型下调用WebServices的标准化步骤,并深入介绍了两种获得代理类的方法:通过VisualStudio.NET2003进行Web引用,以及利用.NETFrameworkSDK中的wsdl.exe命令行工具生成代理类。同时,文章提供了使用代理类的实例方法调用WebServices服务接口的指南,并解释了术语表中关于WSDL和UDDI的重要概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无论那种客户端类型,调用WebServices的步骤都是十分类似的:

1、  获得WebServices的代理类;

2、  在客户端的代码中引用代理类;

3、  在客户端的代码中创建代理类的实例;

4、  通过调用代理类实例的方法来调用相应的WebServices服务接口方法。

 

一、获得代理类

获得代理类的方法有两种:

1、  通过在Visual Stadio .NET2003中引用已有的WebService;

2、  通过.NET Framerwork SDK提供的wsdl.exe生成代理类。

方法一:

在VS2003中,可以使用Web引用的功能来创建代理类。

启动一个项目,在解决方案资源管理器里用右键选择Web引用。接下来输入WSDL文档的位置,或者输入一个Web URL,这个URL能够识别或发现链接到XML WebServices的页面或文档,在使用适当的链接来进行浏览。

方法二:

.NET Framework SDK中提供了一个命令行工具wsdl.exe,来获取WebServices的WSDL语言描述、XSD Schema或disco镜像文件生成该WebServics的代理类源代码。

在c:/programe files/microsoft.net/frameworkSDK/bin/或者(C:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin)下面可以找到这个工具。

具体语法:

Wsdl /language:language /protocol:protocol /namespace:namespace /out:filename / username:username /password:password /domain:domain(url or path)

参数说明:

Language:   是指代理使用的语言。因为不会直接修改代理类代码,所以使用什么语言并不重要(在重新生成这个类以后,所有的修改都会丢失)。默认的与语言为C#

Protocol:     通常会忽略这个选项而使用默认选项(SOAP)。但是也可以为较多限制的协议指定HTTP GET或HTTP POST

Namespace:    代理类使用的.Net命名空间。如果忽略这个参数,就没有命名空间了,而且该文件中的所有类将供全局使用。为了更好的组织结构,应该选用逻辑命名空间。Visual Studio.Net自动使用服务器名(例如:localhost)作为命名空间。

Out:        这使您能够指定所生成的文件名字。但这个名字被默认为服务名加上表示语言的扩展名。

Username/Password/Domain: 如果想通过WebServices访问虚拟目录,应该确定这些验证字段所需要的值。

Url或路径:这个字段总是加在WSDL.exe命令行的最后,它向Web服务器说明了WSDL文档的位置

使用举例:

Wsdl http://localhost/smsSend/WS_smsSender.asmx?WSDL

执行后,会生成一个WS_smsSender.cs代理类文件,然后可以把这个文件加入一个客户端项目或者使用vbc.exe命令行编译器把它编译成为一个DLL

例:vbc /t: library WS_smsSender.cs

 

二、使用代理类

创建任何一个客户端的程序都包括以下步骤:

1)  创建一个代理类的实例;

WS_smsSender.Service1 CallWS_smsSend = new smsSender.WS_smsSender.Service1();

2)  调用代理对象上的方法;

CallWS_smsSend.smsSend(labPhone_no.Text,labsmsContent.Text,labOtherInfo.Text);

3)  获取从Web服务返回的XML格式的数据;

4)  编写客户端代码显示结果。

三、术语表

1、  WSDL:Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。
怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web Service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具 既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。

2、  UDDI:统一描述、发现和集成协议 (UDDI) 始于2000年,由 Ariba, IBM, Microsoft 和其他33家公司创立.UDDI registries提供了一个机制,以一种有效的方式来浏览,发现Web Services 以及它们之间的相互作用.
如果你是编写商业软件,你应该开始考虑到UDDI的杠杆作用,它可以使你的用户能轻松发布他们的网络服务, 易于找到他们所需的Web services.如果你在一个大型企业内工作,有着多个分公司且都忙于建立Web services, 你应该考虑使用因特网,就像 UDDI, 在企业内部可以实现Web services 注册. 不管是商业或者网络用途,你可以通过发送和接收SOAP信息直接来编写UDDI API.

UDDI是作为应用web services的前端协议
主要作用是用来搜索INTERNET上可用的WEB SERVICE以及相关SERVICES的具体信息用的协议
如果要详细了解可以参考具体的web services服务的编写和应用
里面会讲到如UDDI以及SOAP等等协议的具体用途

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值