zoukankan      html  css  js  c++  java
  • Soap流程

    首先本文不对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()  

            {  

     
  • 相关阅读:
    java多线程编程核心技术——第七章补漏拾遗
    java多线程编程核心技术——第六章总结
    第六章:单例模式与多线程序言
    java多线程编程核心技术——第五章总结
    第五章——定时器Timer序言
    我的日志app企划书1.0版本
    du -sh
    安装saltstack使用的shell
    Neo4j社区版配置文件
    挂载磁盘
  • 原文地址:https://www.cnblogs.com/mr-lee1976/p/4652039.html
Copyright © 2011-2022 走看看