我有一个一般性的Web服务问题,希望您能帮助我消除对这个问题的困惑。
我正在使用主机正在调用“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?
最佳答案
SOAP只是XML over HTTP的一种专业,您发布的响应确实看起来像SOAP响应(实际上是SOAP fault)。
这似乎是一个很大的误解,所以不要以为他们在拉你的腿。尝试以其他方式问您的问题。
对于WSDL,如果确实是100%的SOAP Web服务,请注意并不一定要为SOAP Web服务拥有WSDL。
Web服务只是一个通过网络公开一组操作的应用程序。为了调用这些操作,您需要知道它们的名称,期望的参数,参数具有的类型等,以便您知道如何构建client stub。
这意味着需要记录Web服务,否则您将不知道如何编写与Web服务交互的代码。该文档可以是Word文档或PDF,您可以从中手动构建客户端(这需要为您的客户端 stub 编写大量的管道代码)或,该文档可以是WSDL文件,与PDF或可以将Word文档输入到工具中,以自动为您生成 stub 管道代码。
WSDL描述了Web服务-提供一个Web服务是一种很好的做法-但是Web服务与WSDL分开存在。
关于web-services - Web服务-SOAP与 “XML over HTTP”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10521456/