как использовать .net веб-сервис из приложения C ++? - PullRequest
1 голос
/ 23 ноября 2010

У меня есть приложение на c ++, которое проверяет информацию о принтерах в данной сети.Мне нужно хранить эту информацию в базе данных, используя веб-сервис в другом веб-приложении .net.Но я новичок в c ++, и я понятия не имею, как я могу сделать вызов веб-метода в веб-сервисе, используя c ++.В приложении c ++ нет опции добавления веб-ссылки.

Может кто-нибудь предложить мне хороший учебник для этого?Мое приложение - консольное приложение win32.

Спасибо, Subrat

Ответы [ 5 ]

2 голосов
/ 23 ноября 2010

Существует статья MSDN, в которой используется Visual Studio 2005 под названием Пошаговое руководство. Доступ к веб-службе XML с использованием C ++ и CLR , которая должна быть аналогична использованию Visual Studio 2008 C ++.

1 голос
/ 23 ноября 2010

Вы можете использовать Axis от Apache для подключения к веб-сервисам.

0 голосов
/ 01 декабря 2010

Посмотрите на gSoap - отличную библиотеку C / C ++ с открытым исходным кодом для доступа к веб-сервисам.Я широко использовал это для доступа к сервисам, написанным на .Net.Доступны коммерческие и некоммерческие лицензии.

Вам просто нужен файл / url wsdl, и он сгенерирует код клиент / сервер для вас.С веб-сайта:

В дистрибутив gSOAP входят два инструмента компилятора для разработки ваших приложений:

  1. Анализатор WSDL 'wsdl2h'.Этот инструмент преобразует файлы WSDL и XSD в аннотированные определения C / C ++.

  2. Компилятор заглушки и скелета 'soapcpp2'.Этот инструмент генерирует RPC-код и XML-сериализаторы из аннотированных определений C / C ++.

Анализатор 'wsdl2h' преобразует WSDL в спецификации заголовочного файла gSOAP для веб-служб.Эта спецификация дает прозрачное представление C / C ++ о функциональности сервера.Файл заголовка обрабатывается «soapcpp2» для создания заглушек и скелетов исходного кода для вызова службы или создания новой службы на основе WSDL.

0 голосов
/ 23 ноября 2010

SOAP-сообщения, которыми обмениваются клиент и сервер, в основном представляют собой документы XML, и они отправляются через HTTP (они находятся в теле сообщения HTTP). Если вам известен формат SOAP-запроса и ответа, вы можете использовать WinHttp API или более общий WinINet . Еще одно решение - IXMLHTTPRequest . Будьте готовы разбирать XML самостоятельно, возможно, используя MSXML .

Сервер ATL недоступен в VS2008 (он выпущен как проект сообщества , поэтому я не уверен, насколько сильно Microsoft поддерживает эту технологию).

Я использовал WinINet на WinCE для доступа к веб-службе Apache Axis2 / C.

0 голосов
/ 23 ноября 2010

Поскольку вы подразумеваете Windows, вы можете взглянуть на WinInet (ищите его в msdn). WinInet - это очень мощный и многофункциональный http-клиент, но его также сложно использовать, особенно в асинхронном режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...