WCF 服务中的 SOAP 消息。
介绍 WCF 中 SOAP 消息的示例。
引言
在本文中,我们将详细介绍 WCF 通信中的 SOAP 消息。SOAP 代表简单对象访问协议。在 WCF 中,服务器和客户端之间的通信是主要部分。通信通过带有某种传输层消息进行。调用服务的主要目的是在服务器和客户端之间进行数据传输。然后,数据以消息的形式传输。在 WCF 中,消息是 SOAP 类型。所以让我们在 WCF 服务中观察 SOAP 消息。本文仅供新手阅读。
背景
在开始阅读本文之前,读者应该对 WCF 有一些基本的了解。在本文中,我们将通过一些示例来解释/观察 SOAP 消息。
调用服务的目的是从服务方法发送或检索一些数据。在服务中,数据以消息的形式传输。所以消息只不过是 SOAP 格式的数据包,或者你可以说它也是 SOAP 消息。
SOAP 消息只不过是 XML 数据,以 XML 格式传输。XML 格式具有一些 Header 和 Body 部分。所以当客户端调用 WCF 服务方法时,请求中的数据以 XML 格式传输。所以当服务器向客户端提供响应时,数据以 XML 格式传输。
我们知道 XML 是真正独立于平台的,并且用于在不依赖技术和平台的情况下将数据从一端传递到另一端。由于 XML 的这种行为,业界已选择其作为数据传输的标准。
我们将在本文稍后检查 XML 格式的内容。
使用代码
为了观察 WCF 服务中的 SOAP 消息,我们将创建一个 WCF 服务应用程序并逐步进行检查。
步骤 1
在步骤 1 中,我们将在 .NET 框架中创建 WCF 服务应用程序。打开 Visual Studio 框架,然后选择新建项目 -> 然后选择 WCF -> 然后选择 WCF 服务应用程序 -> 然后将应用程序命名为“SoapMessage” -> 然后单击“确定”按钮。
步骤 2
创建服务应用程序后,您将看到新创建的应用程序,如下图所示。在此应用程序中,您会看到一个 .cs 文件,例如 IService1.cs,它实现了接口和操作约定。
然后 Service1.svc.cs 文件定义了在 IService1.cs 文件中定义的接口操作约定。
步骤 3
在此步骤中,我们将代码库添加到我们的应用程序中。
在服务中添加任何操作约定之前,我们需要声明一个接口。之后,我们可以在接口中声明我们的操作约定。
所以在这个例子中,我们的接口名称是“IService1”,我们的操作约定是“AppendTwoString”。操作约定只不过是一个方法,它在服务中的 servicecontract 下公开。所以如果我们公开服务合同,那么属于该服务合同的任何操作约定都将可在客户端使用。所以基本上服务合同是将所有内容封装在一个单元中。所以让我们将以下代码放入您的 IService1.cs 文件中。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace SoapMessage
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract]
public interface IService1
{
[OperationContract]
string AppendTwoString(string firstName, string secondName);
}
}
步骤 4
所以在步骤 3 中,我们刚刚定义了操作约定“AppendTwoString()”。所以在这个步骤中,我们将在 Service1.svc.cs 文件中定义操作约定。
在 Service1.svc.cs 文件中,类 Service1 继承了接口 IService1,所以我们可以在这里定义“AppendTwoString()”操作约定。所以我们在这个“AppendTwoString()”中将两个字符串参数作为输入从客户端应用程序传递,我们将连接两个字符串并将结果字符串作为响应返回给请求的客户端应用程序。所以请求中我们将获得两个参数作为输入,响应中我们将返回一个字符串值作为输出。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace SoapMessage
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
// NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.
public class Service1 : IService1
{
public string AppendTwoString(string firstName, string secondName)
{
return firstName + " " + secondName;
}
}
}
步骤 5
当我们向应用程序添加所有代码后,就可以通过 WCF 测试客户端检查 SOAP 消息了。所以构建应用程序并在 Visual Studio 框架上运行它。运行 WCF 测试客户端后,您将看到如下屏幕
步骤 6
之后,请按照以下步骤操作:
a. 单击“AppendTwoString()”方法。
b. 在“请求”的“值”列中提供一些输入。
c. 然后单击“调用”按钮。
d. 在“响应”的“值”列中检查服务响应。
您也可以从图像中查看这些步骤。
所以在这个步骤中,您只是在方法中提供了一些值并获得了结果字符串值。
步骤 7
在步骤 6 中,我们只给出了一些输入字符串,并在“格式化”选项卡中找到了输出字符串。要检查 SOAP 消息,即 XML 数据,请单击“XML”选项卡,您将看到如下 XML 数据。
如上所述,会有两个 XML 数据部分,如请求和响应数据部分。这两个部分都有 Header 和 Body 元素。
您可以注意到在“请求”部分,Body 元素中有两个参数,如“
这就是您的 SOAP 消息,它有助于您在 WCF 服务通信中传输数据。
我已将相同的演示应用程序附加到本文中。如果您想检查,可以下载它。
希望本文能为您解答关于 SOAP 消息以及它如何在 WCF 服务中传输的疑问。如果您在阅读本文后有所启发,请发表评论。我将带来一些关于 WCF 的新有趣文章。编码愉快!:)