如何仅从C#中web服务的URL中检索SoapEnvelope信息

本文关键字:URL 检索 SoapEnvelope 信息 web 何仅 服务 | 更新日期: 2023-09-27 17:58:29

基本上,我正在尝试制作一个通用客户端,它将从任何类型的web服务中检索方法名称、参数和返回的参数。我曾想过为此解析WSDL.xml,但因为所需的信息分散在不同的元素上。然后我看到了SOAP信封,其中包含了我需要的确切信息。所以我想下载web服务页面并进行一系列字符串操作,以便从特定标签中提取我需要的数据。但我想可能有任何C#函数可以为我提供包含请求和响应标头信息的数据。

有人能给我指路吗。提前谢谢。

如何仅从C#中web服务的URL中检索SoapEnvelope信息

唯一有效的方法是通过WSDL,因为它是服务的唯一真实描述。这些"帮助页面"只是ASMX的一个功能。例如,WCF没有显示SOAP消息示例的帮助页面。另外,SOAP消息的示例并没有真正涵盖消息的全部内容——它没有正确地显示哪些元素是强制性的,哪些不是。它没有正确地显示XSD选项等高级功能。如果你想编写通用客户端,你必须解析WSDL。这真是一项艰巨的任务。还要注意,WSDL可以引用其他WSDL和XSD。

为了让事情变得更容易,您应该检查.NET框架中的可用类来处理服务描述。例如System.ServiceModel.Description.MetadataExchangeClient和该命名空间中的其他类。