【问题标题】:Can anyone explain the difference between XMLRPC, SOAP and also the C# Web Service? [closed]谁能解释 XMLRPC、SOAP 和 C# Web 服务之间的区别? [关闭]
【发布时间】:2010-12-23 06:47:11
【问题描述】:

它们只是相同的协议还是不同的东西? 我只是对此感到困惑。 实际上,我想通过 Python 用 ASP.NET 调用用 C# 编写的 Web 服务。我已经尝试过 XMLRPC,但它似乎不起作用。

那么它们之间的实际区别是什么? 谢谢。

【问题讨论】:

    标签: c# python web-services xml-rpc


    【解决方案1】:

    xml-rpc:它是一种跨网络调用远程过程和函数以进行分布式系统集成的机制。它使用基于 XML 的消息文档和 HTTP 作为传输协议。此外,它只支持6种基本数据类型以及用于通信的数组。

    SOAP:SOAP 也是基于 XML 的协议,用于使用 HTTPPP 传输协议进行信息交换。但是,它比 XML-RPC 协议更先进。它使用 XML 格式的消息,有助于在分布式应用程序中传递复杂的数据类型,因此现在被广泛使用。

    【讨论】:

      【解决方案2】:

      它们是完全不同的协议,您需要找出您希望使用的 Web 服务使用的协议并对其进行编程。 Web 服务实际上只是一个概念 XML-RPC,SOAP 和 REST 是实现这个概念的实际技术。这些实现是可互操作的(没有一些翻译层)。

      所有这些协议都支持基本相同的事情,通过网络调用远程某些应用程序。然而,它们如何做到这一点的细节有所不同,它们不仅仅是同一协议的不同名称。

      【讨论】:

        【解决方案3】:

        为了调用用 C# 编写的 Web 服务,您需要能够使用 WSDL 的 SOAP 库(除了这里提到的所有有用术语之外,请查看它)。我遇到的几个图书馆:

        • suds 是一个轻量级的 SOAP python 客户端。
        • ZSI 是更强大的库,它还可以使用复杂类型的 WSDL。
        • SOAPpy 是很好的图书馆。不幸的是,它自 2005-02-22 以来没有更新,所以我在这里提供它仅供参考。

        Python Web services 页面有更多关于不同相关库的信息和链接。

        【讨论】:

        • +1 用于资源链接。还想指出 C# 确实存在 XML-RPC 库,因此尽管绝大多数 C# web 服务都是 SOAP,但可以使用 XML-RPC。
        【解决方案4】:

        它们都使用相同的传输协议 (HTTP)。

        XMLRPC 使用 XML 格式化传统的 RPC 调用以进行远程执行。

        SOAP 将调用包装在 SOAP 信封中(仍然是 XML,不同的格式,面向基于消息的服务而不是 RPC 样式调用)。

        如果您使用 C#,最好的选择可能是基于 SOAP 的 Web 服务(至少在您列出的选项中)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-09
          • 1970-01-01
          • 1970-01-01
          • 2019-05-13
          • 2014-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多