6

我有一个一般性的网络服务问题,我希望你能帮助我解决我在这个问题上的困惑。

我正在使用主机调用“XML over HTTP 服务”的 Web 服务。他们声称该服务不是 SOAP 服务,但响应是 SOAP 信封响应。该服务当前通过 HTML 表单发布调用;这是 HTML 表单和响应:

HTML

<FORM name=TestForm action=http://intranet/TheWSMethod enctype="text/plain" method="POST">
    <TEXTAREA name=Data rows=22 cols=91 type="text" style="position: absolute; left: 78; top: 69; width:752px; height:330px"></TEXTAREA>
    <INPUT type=xml> 
    <INPUT type=submit value="Transmit">
</FORM>

响应- 基于 SOAP?

<?xml version="1.0" encoding="UTF-8" ?> 
<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <faultcode>soap-env:Server</faultcode> 
    <faultstring>9001</faultstring> 
    <faultactor>/TheWSMethod</faultactor> 
    <detail> ... </detail> 
</soapenv:Fault>

主持人告诉我,这个过程没有 WSDL,这就是我开始困惑的地方。

所以我的问题是,是否存在/应该存在现有的 WSDL?(即他们是在拉我的腿还是他们不明白我在问什么)或者是否有可能没有此类服务的 WSDL?

4

2 回答 2

15

SOAP 只是基于 HTTP 的 XML 的一种特殊化,您发布的响应确实看起来像 SOAP 响应(实际上是SOAP 错误)。

这看起来像是一个很大的误解,所以不要以为他们在拉你的腿。尝试用不同的方式问你的问题。

至于 WSDL,如果这确实是 100% 的 SOAP Web 服务,请注意,对于 SOAP Web 服务来说,WSDL 并不是强制性的

Web 服务只是一个通过网络公开一组操作的应用程序。为了调用这些操作,您需要知道它们的名称、它们期望的参数、参数的类型等,以便您知道如何构建您的客户端存根

这意味着需要记录 Web 服务,否则您将不知道如何编写与 Web 服务交互的代码。该文档可以是 Word 文档或 PDF,您可以从中手动构建客户端(这涉及为您的客户端存根编写大量管道代码)或者文档可以是WSDL文件,这与 PDF 或 Word 文档不同可以提供给工具以自动为您生成存根管道代码。

WSDL 描述了 Web 服务——最好提供一个——但是 Web 服务与 WSDL 分开存在。

于 2012-05-13T17:22:12.073 回答
1

WSDL 主要是 Web 服务的定位器。您可以选择使用某些工具从中生成客户端类来访问 Web 服务。

于 2014-08-25T12:19:48.993 回答