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()

{

时间: 2024-11-09 07:15:31

Soap流程的相关文章

SOAP协议和基于SOAP的开发流程详述

[文章摘要] 简单对象访问协议(SOAP)是交换数据的一种协议规范,是一种轻量的.简单的.基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息. 在实际的软件开发项目中,SOAP大多用于处理用户数据,也即实现开户.销户.改户和查户等功能. 本文根据作者实际从事过的基于SOAP的项目开发,对SOAP协议和基于SOAP的开发流程进行了详细的介绍.希望大家通过此文,能够对基于SOAP协议的开发有一个全面的了解. 一.soapUI和SOAP代码生成框架简介 "工欲善其事,必先利其器"

SOAP学习,构建实际的报文格式

因为需要做一个SOAP的接口对接,对方环境没有弄好不能抓包,也只会调用不懂格式构成,我们只想做个轻量级的接口,不需要支持SOAP的具体格式,只需要针对接口指定的具体参数名,解析字符串就可以了. 所以需要通过抓包确定一下soap的报文格式,方便做字符串解析和报文拼装. 因此准备构建一个php的soap环境,进行抓包. 当前环境 centos6.3系统,默认php不支持soap,下载了php5.6版本 编译 ./configure  '--with-libxml-dir=/usr/lib' '--w

Cordys BOP 4平台开发入门实战演练——流程建模开发(BPM)

1.流程建模开始 在Workspace的项目中,本文项目名称为:Training_WSApp.在项目中根目录下建立BPM文件夹,然后鼠标右键,在弹出菜单中选择New ->Business Process Model组件,进行流程建模开发. 图1 图2 2.图形化建模 在Business Process Model工作台上,图形化.拖拽绘制流程图. 图3 (1)为BPM流程配置表单(新建) 图4 注意:发布表单 图5 在Business Process Model界面中,在其左下角选择Worksp

minidlna源码初探(二)—— SSDP设备发现的大致流程

前言: 之前有专文介绍了minidlna中的UPNP功能,内中介绍其中包含的SSDP(简单发现协议),SOAP(简单对象访问协议)等几个协议(http://blog.csdn.net/sakaue/article/details/19070735).本文将根据minidlna的程序流程,概述SSDP的流程,为下一部分ACE实现做铺垫. 设备发现的大致流程: 首先,根据UPNP的规范: 在设备加入网络,UPnP发现协议允许设备向控制点广告它的服务.它使用向一个标准地址和端口多址传送发现消息来实现.

Node.js 使用 soap 模块请求 WebService 服务接口

项目开发中需要请求webservice服务,前端主要使用node.js 作为运行环境,因此可以使用soap进行请求. 使用SOAP请求webservice服务的流程如下: 1.进入项目目录,安装 soap 模块 > npm install soap --save-dev 2.在项目的 node_modules 目录下找到soap模块下的 lib > client.js, 修改代码: soapAction = ((ns.lastIndexOf("/") !== ns.leng

移动端开发者眼中的前端开发流程变迁与前后端分离

写在最开始 移动端与前端的区别 前端开发的混沌时代 后端 MVC MVC 方案实现 MVC 的缺点与改进 前端只写 Demo HTML 模板 后端 MVC 架构总结 AJAX 与前端 MVC 前后端分离的缺点 双端 MVC 不统一 SEO 性能不够 集中 Or 分离 Nodejs 前后端分离的哲学 Nodejs 分层 实战应用 风险控制 总结 参考资料 写在最开始 这是一篇面向移动端开发者的科普性文章,从前端开发的最初流程开始,结合示范代码,讨论开发流程的演变过程,希望能覆盖一部分前端开发技术栈

Dynamic CRM 2013学习笔记(三十八)流程1 - 操作(action)开发与配置详解

CRM 2013 里流程有4个类别:操作(action).业务流程(business process flow).对话(dialog)和工作流(workflow).它们都是从 setting –> Process 进入,然后点击New按钮来创建: 这篇主要介绍操作:什么是操作.什么时候使用操作.如何创建以及如何调用 一.什么是操作 操作是CRM 2013 新增加的一个功能,用来扩展系统的标准功能.业务人员可以用它来实现业务逻辑,然后开发人员可以在系统事件里(比如update,create)来使用

WCF框架处理流程初探

拜读了大牛蒋金楠的<WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构>,写点心得. (原文:http://www.cnblogs.com/artech/archive/2009/06/18/1506163.html#!comments) 首先需要理解的是WCF的大致处理流程,设计到了哪些主要的类.下面的图片很好的诠释了处理流程. 代码上,作者在客户端和服务端分别创建了需要用来编码的Encoder和用来序列化/反序列化的DispatchFormatter,实际用到的类是DataC

java使用POST发送soap报文请求webservice返回500错误解析

本文使用JAX-WS2.2编译webservice,并使用HttpUrlConnection的POST方式对wsdl发送soap报文进行请求返回数据, 对错误Server returned HTTP response code: 500 的解决方法进行简单分析. 问题描述: 由于课程需要博主需要自己写一个webservice并且通过soap进行请求, 于是使用JAX-WS编译了下面java代码生成webservice服务 生成webservice的java代码: [java] view plai