2012-02-09 3 views
3

Я работаю с собственным клиентским приложением C (не с Visual Studio), которому необходимо вызвать службу WCF. Я создаю службу WCF, поэтому я полностью контролирую ее.Вызов WCF из кода C

Большая часть информации, которую я нашел, имеет дело с вызовом WCF из неуправляемых клиентов C++.

Кто-нибудь пробовал WWSAPI?

Я надеюсь получить какое-то направление относительно того, возможно ли это и какие технологии могут быть использованы. Любая помощь будет принята с благодарностью!

+0

Можете ли вы использовать привязку JSON/REST с вашей службой WCF? –

+0

c клиент в окнах или? –

+0

Если клиент C будет единственным клиентом службы, и вы не собираетесь использовать какие-либо библиотеки WCF на стороне клиента, возможно, вы вообще не хотите создавать службу WCF? – antlersoft

ответ

2

Вы можете использовать gSOAP - это технология, которая позволяет создавать заглушки для клиентского и серверного кода из WSDL. Here является шаг за шагом tuttorial и that для окон

+0

Учебник предназначен для Linux, но я предполагаю, что смотрю на ссылку gSOAP, которая также будет работать в Windows? –

+0

Я дам gSOAP и дам вам знать, как это происходит. Спасибо за предложение. –

+1

gSOAP работает хорошо, и мой проект очень доволен ... спасибо за ссылку! –

2

WCF очень мощный и настраиваемый и позволяет использовать множество различных привязок (HTTP, Sockets, MSMQ, custom и т. Д.). Начиная с версии 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 парсер на стороне клиента Wich делает его относительно легко программировать на C. Вот ссылка на простой библиотеки JSON: Jansson

+0

Мои извинения (noob), но я не понимаю, что такое «TCP/HTTP stack»? Я контролирую привязки WCF и могу изменить это, но как подключить Jansson к стеку TCP/HTTP? –

+0

@EdwardLeno - HTTP-стек представляет собой небольшую библиотеку, которая позволяет клиентам C подключаться к HTTP-серверу. TCP подразумевается HTTP. Подробнее см. Здесь: http://stackoverflow.com/questions/3243209/http-stack-in-c –

+0

Я попробовал несколько клиентов, но не смог заставить их работать с моей ситуацией. Я интересовался cURL и, скорее всего, использовал его для некоторых других проектов. Благодарю. Кстати, я пошел с gSOAP, который работает. –

Смежные вопросы