2012-02-09 83 views
3

我正在使用需要调用WCF服务的本机C客户端应用程序(未使用Visual Studio构建)。我正在创建WCF服务,所以我完全控制它。从C代码调用WCF

我发现的大部分信息涉及从非托管C++客户端调用WCF。

有没有人试过WWSAPI?

我希望得到一些方向,看这是否可能,以及可以使用哪些技术。任何帮助将不胜感激!

+0

你可以在你的WCF服务中使用JSON/REST绑定吗?在windows或c中的客户端是 – 2012-02-09 18:15:50

+0

? – 2012-02-09 18:16:08

+0

如果C客户端将成为服务的唯一客户端,并且您不打算在客户端使用任何WCF库,那么您可能根本不想创建WCF服务? – antlersoft 2012-02-09 18:18:30

回答

2

您可以使用gSOAP是一种技术,允许您从WSDL创建客户端和服务器端代码的存根。 Here是一步步tuttorial和that一个窗口

+0

该教程适用于Linux,但我认为看看gsoap链接,这也将在Windows中工作? – 2012-02-09 18:26:31

+0

我会给gSOAP一个尝试,让你知道它是怎么回事。感谢您的建议。 – 2012-02-09 18:29:56

+1

gSOAP运行良好,我的项目非常高兴......感谢您的链接! – 2012-02-23 00:46:49

2

WCF是非常强大的和可配置的,并允许使用许多不同的绑定(HTTP,套接字,MSMQ,自定义等)。从版本3.5开始,我相信,您可以使用JSON/REST绑定和契约。以下是官方链接:Overview of REST in WCF,以及一些示例:WCF 4 JSON REST Service和这里:REST Service with WCF and JSON

现在,为什么REST和JSON?因为这些协议非常轻便,不需要大量的依赖或库。这实际上是REST, as opposed to SOAP的整个点。

所以,有了这些,你只需要一个TCP/HTTP栈和客户端至极一个JSON解析器使得它比较容易在C编程下面是一个简单的JSON库的链接:Jansson

+0

我的歉意(noob),但我不明白'TCP/HTTP协议栈'是什么?我控制了WCF绑定并可以改变这种情况,但是如何将Jansson连接到TCP/HTTP堆栈? – 2012-02-09 20:48:31

+0

@EdwardLeno - HTTP堆栈是一个小型库,允许C客户端连接到HTTP服务器。 TCP是由HTTP隐含的。在这里看到更多:http://stackoverflow.com/questions/3243209/http-stack-in-c – 2012-02-10 09:34:57

+0

我尝试了几个客户端,但无法让他们与我的情况一起工作。我对cURL感兴趣,并可能将其用于其他一些项目。谢谢。顺便说一句,我与gSOAP,这是工作。 – 2012-02-23 00:48:05