WCF中的REST用于非dot.NET客户端

use*_*881 7 rest wcf soap web-services wcf-binding

我已经阅读了很多关于REST和SOAP之间差异的文章.我将简要总结几行,如果错误请告诉我.

  1. SOAP是一种使用HTTP,TCP等传输消息的协议,但REST仅使用HTTP传输消息.

  2. SOAP仅以XML格式传输消息,但REST使用JSON或XML.

  3. REST不涉及与SOAP相同的流量开销(因为SOAP涉及复杂的XML WSDL生成).

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

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

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

Bog*_*dan 4

是的,您可以通过任何类型的 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 消息,它是协议的一部分。实际上,您需要使用带有信封、标头和正文标记的 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。可以从任何类型的客户端调用它。