Soap流程

摘要:
简单地说,SOAP是一系列过程,例如打包--˃发送--˃接收--˃处理--˃返回包。在ASP。NET中,可以使用MSXML2中的XMLHTTPClass类来创建SOAP发送对象。首先下载Interop.MSXML2.dll,然后将其复制到VS项目的bin目录中,或者在VS#中添加一个引用;使用系统。IO;使用系统。数据使用系统。网状物使用System.Text。正则表达式;使用System.Collections。通用的使用系统。文本使用系统。Xml;使用MSXML2;//xmlHttp#endregionnamespaceSimpleSOAP的命名空间{#regionSend:处理XML数据的发送。////privateXMLHTTPxmlHttp=newXMLHTTPClass();//////失败后结束提示。////privatestring_data=“”;/////结束返回数据包的字符串表示形式。////publicstringError{get{Return_error;}/////初始化Send类的新实例//////要发送到的url路径字符串publicboolExecuteSend{boolb=false;xmlHttp.open;xmlHttp.Send;if{if{_return=xmlHttp.responseText;b=true;}else{_error=“请求页面出现异常。”;}}否则{_error=“请求页面出现异常。

首先本文不对SOAP有过多的解释,你只需知道它是--简单对象访问协议,一种轻量的、简单的、基于 XML 的协议。举个例子,WebService其实就基于SOAP的。

再简单的说一下,SOAP就是打包-->发送-->收包-->处理-->返回包等一系列流程,在ASP.NET中可以使用MSXML2中的XMLHTTPClass类来创建SOAP发送对象,先下载Interop.MSXML2.dll,然后复制到VS项目的bin目录,或者在VS里添加引用。创建如下代码:

[csharp] view plaincopyprint?

#region 引用的命名空间  

using System;  

using System.IO;  

using System.Data;  

using System.Web;  

using System.Text.RegularExpressions;  

using System.Collections.Generic;  

using System.Text;  

using System.Xml;  

using MSXML2;//xmlHttp所属命名空间(添加引用:COM->Microsoft Xml 3.0)  

#endregion  

    

namespace Simple.SOAP  

{  

    #region Send:处理 XML 数据的发送。  

    /// <summary>  

    /// 处理 XML 数据的发送。  

    /// </summary>  

    public class Send  

    {  

        /// <summary>  

        /// XMLHTTP 对象。  

        /// </summary>  

        private XMLHTTP xmlHttp = new XMLHTTPClass();  

        /// <summary>  

        /// Send 失败后的提示信息。  

        /// </summary>  

        private string _error = "";  

        /// <summary>  

        /// 发送数据包的字符串表现形式。  

        /// </summary>  

        private string _data = "";  

        /// <summary>  

        /// Send 返回数据包的字符串表现形式。  

        /// </summary>  

        private string _return = "";  

    

        /// <summary>  

        /// 获取或设置发送数据包的字符串表现形式(建议发送XML数据文档的字符串表现形式)。  

        /// </summary>  

        public string Data  

        {  

            get  

            {  

                return _data;  

            }  

            set  

            {  

                _data = value;  

            }  

        }  

        /// <summary>  

        /// 获取 Send 返回数据包的字符串表现形式。  

        /// </summary>  

        public string Return  

        {  

            get  

            {  

                return _return;  

            }  

        }  

        /// <summary>  

        /// 获取 Send 失败后的提示信息。  

        /// </summary>  

        public string Error  

        {  

            get  

            {  

                return _error;  

            }  

        }  

    

        /// <summary>  

        /// 初始化 Send 类的新实例。  

        /// </summary>  

        public Send()  

        {  

        }  

        /// <summary>  

        /// 初始化 Send 类的新实例。  

        /// </summary>  

        /// <param name="data">要发送数据的字符串表现形式(建议发送 XML 数据文档的字符串表现形式)。</param>  

        public Send(string data)  

        {  

            _data = data;  

        }  

    

        /// <summary>  

        /// 发送数据。  

        /// </summary>  

        /// <param name="url">要发送到的Url路径字符串。</param>  

        /// <returns>true 表示发送成功,false 发送失败。</returns>  

        public bool ExecuteSend(string url)  

        {  

            return ExecuteSend("POST", url);  

        }  

        /// <summary>  

        /// 发送数据。  

        /// </summary>  

        /// <param name="url">要发送到的 url 路径字符串。</param>  

        /// <param name="method">发送方式。</param>  

        /// <returns>true 表示发送成功,false 发送失败。</returns>  

        public bool ExecuteSend(string url, string method)  

        {  

            bool b = false;  

            xmlHttp.open(method, url, false, null, null);  

            xmlHttp.send(_data);  

            if (xmlHttp.readyState == 4)  

            {  

                if (xmlHttp.status == 200)  

                {  

                    _return = xmlHttp.responseText;  

                    b = true;  

                }  

                else  

                {  

                    _error = "请求页面有异常(XMLHTTP.status=" + xmlHttp.status + ")。";  

                }  

            }  

            else  

            {  

                _error = "请求页面有异常(XMLHTTP.readyState=" + xmlHttp.readyState + ")。";  

            }  

            return b;  

        }  

    }  

    #endregion  

   

    #region Incept:处理 XML 数据的接收。  

    /// <summary>  

    /// 处理 XML 数据的接收。  

    /// </summary>  

    public static class Incept  

    {  

        /// <summary>  

        /// 获取接收的数据包,并使用指定的编码

对数据包进行解码。  

        /// </summary>  

        /// <returns>数据包的字符串形式。</returns>  

        public static string ExecuteIncept()  

        {  

 

免责声明:文章转载自《Soap流程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS 6.9永久设置静态路由表以及路由表常用设置Unity-25种合批失败的原因下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AutoMapper(三)

返回总目录 自定义类型转换 有时,需要完全控制一个类型到另一个类型的转换。一个类型一点都不像另一个类型,而且转换函数已经存在了,在这种情况下,你想要从一个“宽松”的类型转换成一个更强壮的类型,例如一个string的源类型到一个int32的目标类型。 这里有两个类Source和Destination,要把前者映射到后者,代码如下: public class...

Jenkins持续集成&amp;amp;安装配置

转载地址:https://blog.csdn.net/weixin_41947378/article/details/111559374 一、什么是持续集成? 持续集成是一个开发的实践,需要开发人员定期集成代码到共享存储库。这个概念是为了消除发现的问题,后来出现在构建生命周期的问题。持续集成要求开发人员有频繁的构建。最常见的做法是,每当一个代码提交时,构建...

c#属性(Property)

属性(Property)是类(class)、结构(structure)和接口(interface)的命名(named)成员。类或结构中的成员变量或方法称为 域(Field)。属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。它们使用 访问器(accessors) 让私有域的值可被读写或操作。 该代码主要是帮助读者了解属性的用法,代...

Nodejs介绍、安装及简单使用

打开Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.cn/ 我们会发现这样一句话: 翻译成中文如下: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器...

单点登陆 ---密钥

一、需求描述 现在有A系统和B系统,需要在A系统进行单点登陆到B系统。 二、B系统要做事 1、提供一个可以让A系统登陆的网址 http://localhost:8083/Account/SingleSignOn/?u=xxx&token=FB92B341DBDB59D7 其中,u为加密后的用户名,token为B系统与A系统单点登录握手密钥 2、控制...

Angularjs总结(三)摸态框的使用

静态页面: <input class="btn btnStyle "value="提&emsp;取"type="button"ng-click="TQZJDFG() " /> controllers中的方法: 1 $scope.TQZJDFG = function() { 2 //可以将此参数传递到所弹出的摸态框的控制器中 3...