首页 文章

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

提问于
浏览
7

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

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

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

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

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

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

有没有人开发过basichttpbinding WCF服务并将其提供给非类似Java,移动设备等的其他设备以使其可互操作?非.net客户端是否可以使用 WCF other than REST

4 回答

  • 4

    Yes, you can consume a WCF service with any kind of SOAP or REST client.

    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信封不是那么大) .

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

    这是从任何类型的客户端调用Web服务(SOAP或RESTful)的想法 . 这是两台机器之间的通信方法 . 机器的实现并不重要(Java,C#,PHP,Python等) .

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

  • 3

    我想你误解了一些基本观点 .

    • REST和SOAP都是通过HTTP播放的Web服务协议 . 我认为你不应该关心HTTP,TCP或UDP,因为它们是较低级别的协议......

    • SOAP将所有内容包装在XML信封中,这会产生一些流量开销 . 这就是为什么SOAP被认为性能更差但更正式,因此更适合某些用途 .

    • SOAP和REST都独立于它们实现的平台

    因此, yes you could consume a REST or a SOAP service implemented on .NET, with any kind of REST or SOAP client . 您还应该知道,您可以使用WCF实现Web服务功能,只需更改一些configuration options即可在SOAP和REST之间更改 endpoints .

    希望我帮忙!

  • 4

    是的,对于非.net客户端,可以使用除Rest之外的WCF服务 . WCF基本上允许您创建Web服务 . Web服务的目的是提供跨平台功能 .

    Rest和Soap都是Web服务,但用途不同 . 这取决于您的要求您要使用哪一个 . Rest仅适用于http协议,可以通过URI轻松调用,也可以通过URL执行CRUD操作 . 它也可以从Web浏览器调用 .

    然而,肥皂也支持跨平台通信,但想要使用肥皂的客户必须支持肥皂工具包 . 它无法从浏览器调用 . 现在几乎每种语言都支持SOAP api .

    使用basichttpbinding公开的服务是基于soap的服务,是的,它也可以从非.net客户端调用 .

  • 0

    使用web apis代替wcf服务进行休息 .

相关问题