尝试创建一个如下所示的SOAP数据包:

时间:2009-06-18 17:28:43

标签: c# soap

我正在研究一个依赖于SOAP消息在各种可执行文件之间传递的现有系统。我试图用我自己的应用程序替换其中一个应用程序,并查看文档,我遇到了困难。

在此之前我没有使用SOAP,并且不确定使用什么工具来完成此任务,甚至不知道我应该搜索哪些关键字。我需要做的是能够创建一个如下所示的SOAP消息:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/1999/XMLSchema"
> <SOAP-ENV:Body xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <GetSpecialList xmlns="SpecialManagerAPI"/> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

并且,我需要通过TCP将其发送到本地IP(127.0.0.1)端口1234并从中获取响应。如何创建上述消息以及发送它的简单方法是什么?

3 个答案:

答案 0 :(得分:1)

我强烈建议您花一些时间来学习至少一些关于Web服务的知识。在思考创建和发送消息方面,你已经走错了路。

一个好的资源是Getting Started with Windows Communication Foundation。另请参阅网络直播Overview (Level 100)

答案 1 :(得分:0)

System.Web.HttpRequestClass将是这样做的简单方法。您需要适当地设置标头(尤其是“SOAPAction”标头)。不过我建议你不要这样做!找到该服务的wsdl,并使用它在Visual Studio中使用AddWebReferenceWsdl.exe构建您的类。这将为您(或几个)构建一个良好的类,以便与之合作!

答案 2 :(得分:0)

您有三个基本选项:

  1. 如果服务具有WSDL或DISCO服务描述,则可以通过添加服务引用(VS 2008和带有某些WCF插件的VS 2005)或添加Web引用(VS 2005)连接到该服务。生成soap客户端类的工具的命令行等效项分别是svcutil.exe和wsdl.exe。
  2. 您可以在C. Ross中建议使用answer,并使用自定义构建的字符串使用HttpRequestClass
  3. 您可以使用XmlDocument类创建xml消息并使用HttpRequest类发送它。我建议你制作一个模板xml文档,并将其作为嵌入式资源保存在可执行文件中。然后,您可以执行xpath查询来修改参数。