2012-02-09 84 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