任何人都可以解释XMLRPC,SOAP和C#Web服务之间的区别吗?

时间:2009-12-04 15:06:45

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

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

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

4 个答案:

答案 0 :(得分:5)

所有这些都使用相同的传输协议(HTTP)。

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

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

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

答案 1 :(得分:4)

为了调用用C#编写的Web服务,您将需要能够使用WSDL的SOAP库(除了此处提到的所有有用术语外,还要检查它)。我偶然发现了几个图书馆:

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

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

答案 2 :(得分:3)

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

所有这些协议实现了基本相同的功能,通过Web调用远程某些应用程序。但是,它们如何做到这一点的细节不同,它们不仅仅是同一协议的不同名称。

答案 3 :(得分:1)

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

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