我已经阅读了很多有关REST和SOAP之间差异的文章。我将在几行中进行总结,如果有误,请告诉我。


SOAP是使用HTTP,TCP等传输消息的协议,而REST仅使用HTTP传输消息。
SOAP仅以XML格式传输消息,而REST使用JSON或XML。
REST不像SOAP那样涉及相同的流量开销(因为SOAP涉及复杂的XML WSDL生成)。


我读过WCF是为了提供互操作性而开发的。我已经在.net中开发了REST服务,并且客户端是移动设备(而不是.net客户端)。我已经测试过了这个,并且也上线了。

话虽如此,我的问题是...

是否有人开发了基本的httpbinding WCF服务并将其提供给Java,移动设备等非.net客户端以使其可互操作?非.net客户端是否可以使用REST以外的WCF?

最佳答案

是的,您可以使用任何类型的SOAP或REST客户端使用WCF服务。


SOAP是使用HTTP,TCP等传输消息的协议,而REST仅使用HTTP传输消息。


这个问题太广泛了,无法回答“是”或“否”。与您的问题严格相关,我们具有SOAP的以下特性:


SOAP是一种协议;
SOAP消息可以通过HTTP,TCP,SMTP等(实际上是任何协议)发送。 SOAP是在另一个传输协议之上使用的消息传递协议。
SOAP最常用的协议是HTTP和HTTPS。


现在,REST的特征是:


REST是建筑应用程序的一种架构风格。
REST实际上并未绑定到HTTP协议,它可以使用任何传输协议;
每个人都使用HTTP和HTTPS进行REST;



SOAP仅以XML格式传输消息,而REST使用JSON或XML。


SOAP只能发送XML消息,它是协议的一部分。实际上,您实际上需要对带有Envelope,Header和Body标签的XML使用特定格式。

REST是关于资源的表示。该表示形式可以具有任何结构,并且可以采用任何格式,不仅可以是XML或JSON(尽管XML和JSON是最常用的);


REST不像SOAP那样涉及相同的流量开销(因为SOAP涉及复杂的XML WSDL生成)。


WSDL不涉及实际的操作调用,它是描述SOAP Web服务的另一部分。 REST具有类似的名称(虽然不是很常用),称为WADL。您需要同时使用SOAP和REST来编组/解组数据,因此在大多数情况下开销并不是问题(SOAP信封不是那么大)。


是否有人开发了基本的httpbinding WCF服务并将其提供给Java,移动设备等非.net客户端以使其可互操作?非.net客户端是否可以使用REST以外的WCF?


这就是Web服务(SOAP或RESTful)的想法,可以从任何类型的客户端中调用。这是两台机器之间进行通信的一种方法。机器的实现无关紧要(Java,C#,PHP,Python等)。

WCF是一个Web服务框架,可以将服务公开为SOAP或REST API。可以从任何类型的客户端调用它。

10-02 02:02
查看更多