我有一个一般的网络服务问题,我希望你能帮助我澄清我对这个问题的困惑。
我正在使用主机调用“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?
答案 0 :(得分:14)
SOAP只是基于HTTP的XML的特化,而您发布的响应确实看起来像SOAP响应(实际上是SOAP fault)。
这看起来像是一个很大的误解,所以不要以为他们会拉你的腿。尝试以不同的方式提问。
对于WSDL,如果这确实是一个100%SOAP Web服务,请注意不必为SOAP Web服务提供WSDL 。
Web服务只是一个通过网络公开一组操作的应用程序。要调用这些操作,您需要知道他们的名字是什么,他们期望的参数,参数的类型等等,以便您知道如何构建client stub。
这意味着需要记录Web服务,否则您将不知道如何编写与Web服务交互的代码。此文档可以是Word文档或PDF,您可以手动构建客户端(这涉及为您的客户端存根编写大量管道代码) OR 文档可能是{{可以将与PDF或Word文档不同的文件提供给工具,以便自动为您生成存根管道代码。
WSDL描述了Web服务 - 提供Web服务是一种很好的做法 - 但Web服务与WSDL分开存在。
答案 1 :(得分:1)
WSDL主要是Web服务的定位器。您可以选择使用某种工具从中生成客户端类来访问Web服务。