Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能解释XMLRPC、SOAP和C#Web服务之间的区别吗?_C#_Python_Web Services_Xml Rpc - Fatal编程技术网

有人能解释XMLRPC、SOAP和C#Web服务之间的区别吗?

有人能解释XMLRPC、SOAP和C#Web服务之间的区别吗?,c#,python,web-services,xml-rpc,C#,Python,Web Services,Xml Rpc,它们只是相同的协议还是不同的? 我只是对此感到困惑。 实际上,我想通过Python调用一个用C#编写的web服务,其中包含ASP.NET。我尝试过XMLRPC,但似乎不起作用 那么,它们之间的实际区别是什么呢? 谢谢。它们是完全不同的协议,您需要找出您希望使用的web服务所使用的协议,然后进行编程。Web服务实际上只是一个概念XML-RPC,SOAP和REST是实现这个概念的实际技术。这些实现是不可互操作的(没有一些转换层) 所有这些协议都支持基本相同的功能,通过web调用远程应用程序。然而,它

它们只是相同的协议还是不同的? 我只是对此感到困惑。 实际上,我想通过Python调用一个用C#编写的web服务,其中包含ASP.NET。我尝试过XMLRPC,但似乎不起作用

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

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


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

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

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

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


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

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

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

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

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


SOAP:SOAP也是使用HTPP传输协议进行信息交换的基于XML的协议。然而,它比XML-RPC协议更高级。它使用XML格式的消息来帮助跨分布式应用程序传递复杂的数据类型,因此现在被广泛使用。

+1用于资源链接。我还想指出,C#确实存在XML-RPC库,因此尽管绝大多数C#Web服务都是SOAP,但使用XML-RPC是可能的。