我从来没有真正理解为什么Web服务实现者会选择一个而不是另一个.XML-RPC通常在旧系统中找到吗?任何帮助理解这一点将不胜感激.
区别在哪里?
SOAP更强大,并且是软件工具供应商(MSFT .NET,Java Enterprise Edition,等等)的首选.
SOAP很长一段时间(2001-2007)被视为SOA的首选协议.xml-rpc没那么多.REST是新的SOA宠儿,虽然它不是协议.
SOAP更冗长,但功能更强大.
某些较旧的东西不支持SOAP.例如,没有经典ASP的SOAP库(我能找到).
python中不支持SOAP.XML-RPC在标准库中的python中得到了很大的支持.
SOAP支持文档级传输,而xml-rpc更多关于值传输,尽管它可以传输结构,列表等结构.
xm-rpc实际上是关于编程语言不可知转移的程序.它主要通过http/https.SOAP消息也可以通过电子邮件发送.
xml-rpc更加单一.它可以让您简单地执行操作,当您知道自己在做什么时,即使使用终端文本编辑器,也可以非常快速地部署高质量的Web服务.以这种方式做SOAP是一个动物园; 你真的需要一个好的IDE来让它变得可行.
但是,如果您正在竞争财富500强的IT工作,那么了解SOAP会在您的简历/简历上看起来更好.
xml-rpc与非ascii字符集有一些问题.
XML-RPC不支持命名参数.它们必须按正确顺序排列.不确定SOAP,但请这么认为.
只是为了添加其他答案,我建议您查看SOAP和XML-RPC调用的实际文本表示,可能是通过使用Ethereal捕获一个.总的来说,"XML-RPC更简单"的论点在你看到SOAP调用的冗长程度之前没有多大意义.许多相当受欢迎的网站都避免使用SOAP作为他们的API,因为如果人们开始广泛使用它,它将消耗大量的带宽.
凯特·罗德斯(Kate Rhodes)在http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap上发表了一篇关于差异的出色文章