use*_*881 7 rest wcf soap web-services wcf-binding
我已经阅读了很多关于REST和SOAP之间差异的文章.我将简要总结几行,如果错误请告诉我.
SOAP是一种使用HTTP,TCP等传输消息的协议,但REST仅使用HTTP传输消息.
SOAP仅以XML格式传输消息,但REST使用JSON或XML.
REST不涉及与SOAP相同的流量开销(因为SOAP涉及复杂的XML WSDL生成).
我读过WCF是为了提供互操作性而开发的.我在.net中开发了REST服务,客户端是移动设备(不是.net客户端).这个我已经测试并上线了.
话虽如此,我的问题是......
有没有人开发了basichttpbinding WCF服务并将其提供给非.net客户端,如Java,移动设备等,以使其可以互操作?非.net客户端是否可以使用除REST之外的WCF?
是的,您可以通过任何类型的 SOAP 或 REST 客户端使用 WCF 服务。
SOAP 是一种使用 HTTP、TCP 等来传输消息的协议,而 REST 仅使用 HTTP 来传输消息。
这个问题太宽泛,无法用“是”或“否”来回答。与您的问题严格相关,我们有 SOAP 的以下特征:
现在介绍一下 REST 的特点:
SOAP 仅以 XML 格式传输消息,但 REST 使用 JSON 或 XML。
SOAP 只能发送 XML 消息,它是协议的一部分。实际上,您需要使用带有信封、标头和正文标记的 XML 特定格式。
REST 是关于资源的表示。表示可以具有任何结构并且可以是任何格式,而不仅仅是 XML 或 JSON(尽管 XML 和 JSON 是最常用的);
REST 不涉及与 SOAP 相同的流量开销(因为 SOAP 涉及复杂的 XML WSDL 生成)。
WSDL不参与实际的操作调用,它是描述 SOAP Web 服务的单独内容。REST 有类似的东西(虽然不是很常用),称为WADL。您需要使用 SOAP 和 REST 编组/解组数据,因此开销在大多数情况下都不是问题(SOAP 信封没有那么大)。
有没有人开发了 basichttpbinding WCF 服务并将其提供给非 .net 客户端(如 Java、移动设备等)以使其可互操作?非 .net 客户端是否可以使用 REST 以外的 WCF?
这就是 Web 服务(SOAP 或 RESTful)的理念,可以从任何类型的客户端调用。它是两台机器之间通信的一种方法。机器的实现并不重要(Java、C#、PHP、Python 等)。
WCF 是一个 Web 服务框架,可以将服务公开为 SOAP 或 REST API。可以从任何类型的客户端调用它。