ASP之SOAP的发送、接收与处理类[转载]

本人研究SOAP,源于06年工作时在ASP下跨域的数据传递,当时公司的主站需要与二级域名进行数据通信,经过对动网一段时间的研究,最后自己整理出几个类,用于处理这种数据包的收发和处理。

我们不谈SOAP是什么,只谈用来干嘛,简单的说就是通过HTTP进行数据包(XML文档格式数据)传递,比如有两个站点:A和B,如果A想读取B中某些数据,必须具备两个条件:一是,B必须对A开放这些功能,另外一个是,A必须具备读取和处理的能力。所以,B必须能够识别出A,因为基于HTTP协议是“开放”性的,任何人都可以访问,那就需要对用户进行身份验证,除此之外,就是如果对数据进行打包,很简单--XML文档,在SOAP中所有的包都是XML的文档格式,也就是说,在传递数据时必须进行“打包”,制作成XML文档进行传递,接收时装载这个XML文档,然后处理,最后打包需要返回的数据,再返回。

看看我的SOAP收发和处理类(ASP)

Code

先看发送类:SendXML

使用前先配置构造函数中的两个参数:

  myXML_AppID = "www1"         '当前系统的程序标识
  myXML_Urls = "http://localhost/include/myXml.asp"   '整合的其它程序的接口文件路径
  myXML_AppID参数表示当前站点的标识,在接收类中用此标识来唯一的验证身份,  myXML_Urls参数表示数据包发送的地址路径。该参数可以存储多个地址,中间用“,”逗号分隔,其实有点像“广播”,发送的时候会向所有的地址都发送这个包。

当创建该类后,可以通过CreateNode方法先对数据包进行设置,然后使用Send方法发送。这里我们不讨论如果打包,你必须非常的熟悉如果处理XML文档。

接收类:InceptXML

该类中最重要的一个方法:GetNode接收数据函数。成功接收后,可以通过GetInceptXml函数读取数据包,至于如何处理我们也不讨论(还是那句话,你必须非常的熟悉如果处理XML文档)。

返回类:ReturnXML

其实该类就是打印出返回的包--XML文档。

处理类:ManageXML

该类只是集成了对XML常用操作的一些方法。

最后,还有二个问题,第一个就是乱码,你在使用SOAP前,要统一一种编码,否则在处理的时候你会经常遇到乱码。另外一个,也是最最重要的一点,就是耐心,SOAP在测试的时候是最烦心的,因为每一个环节的失败都将直接导致你最终结果的错误,不论是在发送、接收以及返回包的任何一个步骤上都必须准确无误。所以我在每一个类中都有一个相似的方法--打印包的函数,就是把要发送的包、接收到的包以及返回的包都先打印出来,最笨的方法了,处理之前抓取这个包,看看到底包的内容和你预计的是否完全一样。

原文地址:https://www.cnblogs.com/ddlzq/p/1609824.html