web-services - Web服务-SOAP与 “XML over HTTP”

标签 web-services soap wsdl

我有一个一般性的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/

相关文章:

c# - WCF 添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据

java - Apache Camel 到 SOAP API 的路由

java - Apache CXF 能否生成客户端并自动获取 WSDL 和模式的本地副本?

java - 如何在 Java 中使用 SOAP 实现基于 HTTPS 的 Web 服务

java - wsimport "Cannot resolve the name..."

web-services - Delphi 2007 SOAP 故障处理

java - REST Web 服务 - 示例代码 - 提供 HTTP 302 响应

java - servlet 和 web 服务之间的区别

java - SOAP 错误代码 env :Client

java - 如何在 Java 中调用 WSDL URL 上的 Web 服务?