23

SOAP over HTTP 是 XML over HTTP 的子集,因为我假设 SOAP 也是一个确认模式(SOAP 模式)的 xml?我假设 XML over HTTP 服务可以使用 GET 或 POST 方法访问。SOAP over HTTP 是否总是使用 POST 方法?在 XML over HTTP 的情况下,我认为缺点是模式文件必须与所有消费者共享,而在 SOAP over HTTP 的情况下,它将是单个 WSDL 文件。是否有可能帮助我了解其中一个的区别和优势?

4

1 回答 1

26

SOAP 是 XML 的一种特殊化,因为它有一个模式,例如http://www.xmlsoap.org/soap/envelope/,而 XML 更通用。

对于使用 GET,您可以阅读以下讨论: http: //www.coderanch.com/t/463869/Web-Services/java/SOAP-request-HTTP,但基本上 SOAP 是通过 POST 完成的,尽管 Axis2 似乎有支持 GET,作为让 SOAP 在 REST 似乎占主导地位的世界中工作的一种方式。

而且,根据这篇 IBM 文章 ( http://www.ibm.com/developerworks/xml/library/x-tipgetr/index.html),SOAP 1.2 引入了 GET。

正如您所提到的,SOAP 是一个标准,因此有一些工具可以轻松使用它,包括动态客户端生成,如这个问题所示,java 中的动态代理soap web 服务客户端?, whansere 客户端在连接时生成所需的存根。

如果您在 http 上使用 XML,根据需要,作为传输数据的一种方式可能会更好,但在用例中,我认为只使用 JSON 和 REST 似乎更好,但是,如果您想传输 XML,或者发送 XML,然后你可以看看使用 REST。

尽管 GET 有大小限制( HTTP GET 请求的最大长度? ),但 POST 将是更好的选择,这可能就是 SOAP 几乎总是 POST 的原因。

WSDL 不一定是单个文件,在 WCF 中,如果我记得的话,需要将许多 xml 文件放在一起才能完成 WSDL。

优势取决于您的用例是什么,但我发现使用 REST 并允许用户选择类型很有用,例如在 JSON 和 XML 之间切换可能很简单,并且是 XML over HTTP 的更好选择.

SOAP 最适合与旧技术集成,因为这可能是他们可以轻松使用的全部。例如,当我为 SAP 集成制作 Web 服务时,不使用 SOAP 可能会做更多的工作,这取决于 ABAP 程序员的能力。

您可能会发现这个使用问题:

SOAP 和 REST 如何处理 XML/JSON 响应?

对于有关 web 服务中的 JSON 和 XML 的讨论,您可能会发现这很有帮助:

http://digitalbazaar.com/2010/11/22/json-vs-xml/

我忘记了这个链接,因为他们做了一个简短的比较,但最后你可以轻松地支持两者。在 WCF 中,我有一个具有业务逻辑的控制器,并且必须处理 .aspx 文件,一个用于 SOAP,一个用于 REST,并且一些 Web 服务同时支持这两者,因为这只是处理请求和响应差异的问题。因此,如果您想为两者提供支持,并有一个商业案例表明它是有意义的,那么请选择一个易于实现的框架。

http://digitalbazaar.com/2010/11/22/json-vs-xml/

基本上,目标是通过网络向客户提供服务。什么客户端要连接?客户如何发现最容易联系?请求中传递了多少数据?

这些类型的问题将为您的需求提供最佳解决方案。

于 2013-09-01T04:03:08.907 回答