1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VB实现SOAP

简介 SOAP - 简单对象处理协议(Simple Object Access Protocol) - 是当前XML开发的热点。它是微软新一代Visual Studio的主要角色,是.NET策略的基础。如果想用VB 6编制一个有保障的SOAP服务,可以查阅微软的SOAP工具包(VB)。但如果想了解SOAP到底是什么,就要自己动手建立自己的SOAP标准对象。本文可以帮助你起步。 本文中,我们创建一个简单的SOAP服务端和一个客户端。服务端用ASP编写,名为soap.asp。这个文件应存放在个人Web服务器的根目录下,如:\Inetpub\wwwroot。这个服务器将接受和处理客户端提出的SOAP请求。客户端是一个简单的VB可执行文件,由Sub Main()启动。 步骤 众所周知,SOAP是一个“呼叫-响应”机制,按客户/服务方式运行。客户端(应用程序)向服务端(位于互联网上的某个Web服务器)发出函数调用请求并传递参数;服务端则返回响应。呼叫与响应的内容和数据都是按XML文件格式进行传送的。因此,要建立一个简单的SOAP应用系统,就要建立一个客户端和一个服务端,即一个呼叫-响应体系。 下面是一个简单例子: 我们建立一个服务端来计算销售交易的税款。按照传统的VB术语,即建立一个函数,定义如下: ? ?? ?Public Function GetSalesTax(ByVal pSalesTotal As Double) as Double ? ?? ?? ? GetSalesTax = pSalesTotal * 0.04 ? ?? ?End Function 一个粗糙的函数,但可作为示例(本例只能用于税率为4%的地方)。 这个函数定义了一个函数名(GetSalesTax),一个参数(pSalesTotal – 销售金额)和一个返回值(函数返回值)。按照面向对象原则,可以认为pSalesTotal是一个IN参数,GetSalesTax返回值是一个OUT参数。因此我们的SOAP服务端就要侦听客户发出的调用GetSalesTax的请求和传递的IN参数(销售金额),然后返回带有OUT参数的回应,向客户返回所需税款。 客户端 下面是用VB建立一个呼叫服务的客户端程序: ? ?? ?dblSalesTax = GetSalesTax(100) ? ?? ?得到返回值$4。 ? ?? ? ? ?? ?如果GetSalesTax函数是一个外部对象,比如在MTS服务器上,就要调用服务器上的DLL模块: ? ?? ?Dim objTax As New CTaxCalc ? ?? ?dblSalesTax = objTax.GetSalesTax(100) 在SOAP系统中,远程调用的方式略有不同,呼叫是通过XML文件传送到服务器的。XML文件里有调用的函数名和相应的参数: ? ?? ?GetSalesTax ? ?? ?? ? SalesTotal100/SalesTotal ? ?? ?GetSalesTax 为确保服务器能够识别和解释客户请求,呼叫指令被包装到一个称之为SOAP信封的大文件里。这个信封使用的是SOAP封装标准的通用命名空间: ? ?? ?SOAP:Envelope xmlns:SOAP=urn:schemas-xmlsoap-org:soap.v1 ? ?? ?? ? SOAP:Header/SOAP:Header ? ?? ?? ? SOAP:Body ? ?? ?? ?? ???GetSalesTax ? ?? ?? ?? ?? ?? ?SalesTotal100/SalesTotal ? ?? ?? ?? ???GetSalesTax ? ?? ?? ? /SOAP:Body ? ?? ?/SOAP:Envelope 最后,加入函数调用的命名空间,起到函数声明的作用: ? ?? ?SOAP:Envelope xmlns:SOAP=urn:schemas-xmlsoap-org:soap.v1 ? ?? ?? ? SOAP:Header/SOAP:Header ? ?? ?? ? SOAP:Body ? ?? ?? ?? ???m:GetSalesTax xmlns:m=urn:myserver/soap:TaxCalc ? ?? ?? ?? ?? ?? ?SalesTotal100/SalesTotal ? ?? ?? ?? ???/m:GetSalesTax ? ?? ?? ? /SOAP:Body ? ?? ?/SOAP:Envelope 现在,已经准备好客户请求文件,可以送往服务端了。发送请求很简单,可以跟浏览器表单一样,用HTTP??post方式。浏览器可以向服务端发送复杂的表单,.NET可以向服务

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档