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

如何仅从C#中web服务的URL检索SoapEnvelope信息?,c#,wcf,web-services,soap,C#,Wcf,Web Services,Soap,基本上,我正在尝试创建一个通用客户机,它将检索方法名称、它接受的参数以及它从任何类型的web服务返回的参数。我曾想过为此解析WSDL-xml,但所需的信息分散在不同的元素上。然后我看到了SOAP信封,里面包含了我需要的确切信息。因此,我考虑下载web服务页面并执行一系列字符串操作,以便从特定标记中提取所需的数据。但我想可能有任何C#函数可以为我提供包含请求和响应头信息的数据 谁能给我指路吗。 提前感谢。唯一有效的方法是通过WSDL,因为它是服务的唯一真实描述。那些“帮助页面”只是ASMX的一个功

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

谁能给我指路吗。
提前感谢。

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


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

但WSDL的另一个问题是,它没有提供web服务返回的参数的名称和类型。它同时提供了这两个名称和类型。WSDL定义了引用所传输数据的XSD定义的消息。这里有名称和类型(以可互操作的XSD方式定义)。您好,最后我的问题通过使用下面的文章得到了很大的解决,他可以使用“System.Web.Services.Description”来实现它,这与我提到的方法相同,但它使用较旧的ASMX API而不是WCF API。