【问题标题】:How to read Web Method and parameters name from Web Service如何从 Web 服务中读取 Web 方法和参数名称
【发布时间】:2014-01-08 16:01:40
【问题描述】:

我是 C#.NET 开发人员。我正在编写一个可以动态调用 Web 服务的应用程序。我有一个用 Java 编写的 Web 服务。此 Web 服务仅返回 WSDL 文件中的 Web 方法名称,但不返回其输入/输出参数详细信息。他们将所有详细信息保存在另一个 XSD 链接中。该 xsd 链接存在于 WSDL 文件中。我想知道如何读取该 XSD 文件以及我们如何读取 Web 方法名称及其输入和输出参数。

我正在寻求优先帮助。

这是示例链接:http://www.java-tutorial.ch/api-doc/ArticleService.html#src.N10068

提前致谢。 拉吉夫

【问题讨论】:

  • 为什么不将 WSDL 作为服务引用导入 VS,或者使用 svcutil.exe (WCF) 或 wsdl.exe?
  • 您究竟是如何“动态”调用这些 Web 服务的?一些可能相关的线程hereherehere
  • 你看WsdlImporter了吗?
  • 我只有像“192.168.11.100:9080/AbcWebServices/MyAPICustomer?wsdl”这样的服务网址。我必须在运行时读取每个方法的所有方法和参数(输入/输出)名称,并使用一些预定义的值调用每个方法。正如我提到的,当我调用 Web 服务时,我只能找到方法名称。结果 xml 中还有另一个链接 ("192.168.11.100:9080/WS/ArticleService?xsd=2"),它返回每个方法的所有参数。我不知道如何在链接中查找和调​​用以获取每个服务的所有参数名称。我正在编写通用应用程序。

标签: c#


【解决方案1】:

XSD 文件是有效的 XML,这意味着您可以使用 System.Xml 或 System.Xml.Linq 命名空间中的类对其进行解析。我假设当您说您正在动态调用 Web 服务时,您不能依赖 Visual Studio 中的静态 WSDL 引用

【讨论】:

  • 我只有像“192.168.11.100:9080/AbcWebServices/MyAPICustomer?wsdl”这样的服务网址。我必须在运行时读取每个方法的所有方法和参数(输入/输出)名称,并使用一些预定义的值调用每个方法。正如我提到的,当我调用 Web 服务时,我只能找到方法名称。结果 xml 中还有另一个链接(“192.168.11.100:9080/WS/ArticleService?xsd=2”),它返回每个方法的所有参数。我不确定如何查找和调用内部链接以获取每个服务的所有参数名称。我正在编写通用应用程序。
  • 应该与您发出任何其他网络请求的方式相同
【解决方案2】:

假设您正在使用 Visual Studio 并希望生成代理类来使用您需要添加对 WSDL 的 Web 引用的 Web 服务。您可以找到有关如何执行此操作的说明at microsoft.

此过程将生成与 Web 服务交互所需的类,包括所有方法和属性。

这不是生成代理类的唯一方法,但恕我直言,这是最简单的。

下面是一个工作示例,说明您最终可以得到什么:

我针对称为 Netsuite 的 ERP 系统进行开发。他们在https://webservices.netsuite.com/wsdl/v2013_2_0/netsuite.wsdl 提供了一个WSDL。

按照上面链接中的说明,我显示以下内容:

我现在可以像调用其他任何类一样调用该类。为了查看现在可用的课程, 在对象浏览器中查看引用。下图显示了所有类,当然您可以单击每个类来查看可用的属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多