代码之家  ›  专栏  ›  技术社区  ›  Sören Kuklau Keith Boynton

我可以检查SOAP Web服务是否支持特定的Web方法吗?

  •  1
  • Sören Kuklau Keith Boynton  · 技术社区  · 16 年前

    我们的Web服务分布在不同的服务器上的原因有很多(比如减少客户机的延迟),而且它们并不总是最新的。而不是在方法 存在是因为特定的Web服务太旧了,如果我们可以让客户机在调用某个给定的方法之前检查该服务是否响应该方法,或者禁用该功能(或解决该功能),那就更好了。

    有办法吗?

    3 回复  |  直到 16 年前
        1
  •  1
  •   rmontgomery429    16 年前

    单元测试Web服务以确保其签名不会中断。当您编写的代码破坏了方法签名时,您将知道并可以相应地调整其他应用程序。

    或者,不要破坏Web服务并以一种使您能够对它们进行版本化的方式发布它们。如在 http://services.domain.com/MyService/V1.1/Service.asmx (对于.NET)这样,使用v1.1的应用程序在发布v1.2并进行中断更改时就不会中断。

    如果管理您的Web服务真的有那么大的困难,我也会使用内部的UDDI服务器来检查。使用UDDI的绿页将告诉您您想要了解的服务。

        2
  •  2
  •   lotsoffreetime    16 年前

    获取WSDL(append?WSDL到URL)-您可以任意解析它。

        3
  •  0
  •   Alejandro Mezcua    16 年前

    当您发出SOAP请求时,您只是向服务器发送一个HTTP请求。如果服务器理解它,它将用一个HTTP 200和一些XML返回来响应,如果不理解,它将向您发送一些错误的HTTP代码(404500,…)

    没有一般的方法来要求存在由Web服务公开的“方法”。如果WSDL是自动的,请尝试使用它,或者尝试使用“方法”并检查响应中的错误(您不必向用户发送异常…)

    另外,我不知道我是否理解您,但是您正在考虑查询服务器两次,一次检查方法是否存在,第二次进行实际调用(如果存在)?如果没有,我会检查错误,如果没有,我会正常进行。