它们是相同的协议还是不同的东西? 我对此感到困惑。 实际上,我想通过Python调用用C#编写的Web服务。我尝试过XMLRPC,但似乎没有用。
那么它们之间的实际区别是什么? 感谢。
答案 0 :(得分:5)
所有这些都使用相同的传输协议(HTTP)。
XMLRPC使用XML格式化传统的RPC调用以进行远程执行。
SOAP将调用包装在SOAP信封中(仍然是XML,不同的格式,面向基于消息的服务而不是RPC样式调用)。
如果您正在使用C#,最好的选择可能是基于SOAP的Web服务(至少在您列出的选项中)。
答案 1 :(得分:4)
为了调用用C#编写的Web服务,您将需要能够使用WSDL的SOAP库(除了此处提到的所有有用术语外,还要检查它)。我偶然发现了几个图书馆:
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格式的消息,有助于在分布式应用程序中传递复杂的数据类型,因此现在被广泛使用了几天。