Web服务 - SOAP与“XML over HTTP”

时间:2012-05-09 17:52:29

标签: web-services soap wsdl

我有一个一般的网络服务问题,我希望你能帮助我澄清我对这个问题的困惑。

我正在使用主机调用“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?

2 个答案:

答案 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服务。