Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Soap клиент wsdl |
Автор: ecspertiza 22.5.2009, 12:17 | ||||
Есть такой вопрос как на Qt написать Soap клиент, который смог бы использовать wsdl файл на сервере? скачал QtSoap но там ничего про это ненаписано или я просто ничего не понимаю, пока делаю так
на что софт мне отвечает что хост не найден, а он есть и аналогичный клиент написанный на php работает нормально. |
Автор: ecspertiza 26.5.2009, 14:23 |
Всем спасибо разобрался ![]() |
Автор: ecspertiza 14.6.2009, 23:16 | ||||||||||||||||||||||||||
Так как мне на почту пришло письмо с просьбой описать как можно написать SOAP клиет на QT я решил написать эту небольшую статью о том как это сделать и реальзовать. Если буду допускать ошибки(а это возможно) то надеюсь более грамотные форумчане меня поправят ![]() Сразу скажу я буду работать вот с этими компанентами http://www.qtsoftware.com/products/appdev/add-on-products/catalog/4/Utilities/qtsoap/ Что нужно для работы с SOAP? Как минимум это сервер, клиент и wsdl файл. Что такое клиент и сервер я описывать небуду т.к. я думаю это и так понятно, а вот про wsdl немного расскажу. Грубо говаря это файл в котором описаны ваши процудуры и их переменные а также где рассположен сервер. При написании клиента на PHP мы можем указать путь к wsdl файлу и вызвать нужную нам процудуру, wsdl файл автоматически перенаправит запрос на сервер с нужными параметрами, QT так неумеет(покрайней мере у меня неполучилось). Подробнее о wsdl можно посмотреть тут http://raleigh.ru/XML/w3schools/wsdl/ ну или в www.google.ru 1. Написание wsdl. Для нашего проекта wsdl файл будет выглядеть вот так
Немного расскажу о чём тут написано ![]()
Описывает нашу процедуру input и output указывает на входные и выходные параметры, они описаны вот тут
вот в этом месте указанно рассположение сервера
и ещё вот тут
просьба поменять на своё расположение сервера ![]() 2. Написание сервера. Сервер я решил писать на PHP так как на мой взгляд он отлично подходит для написания серверов(это ИМХО),
небольшое описание
создаём класс для работы, в нём будет наша процедура.
создаём объект класса SoapServer в нём указываем путь к wsdl файлу.
говарим с каким классом работать. 3. Написание Клиента. Вот и добрались, я выложу исходники на PHP на всякий случай вдруг комуто понадабятся их описывать небуду
а вот собственно наверное то до чего так долго читали, исходники на QT main.cpp
Здесь ничего сложного создаём объект SoapClient и передаём в него параметр soapclient.h
Описание класса SoapClient принимает строковый параметр. soapclient.cpp
вот вобщемто и всё думаю с установкой компанентов и сборкой разобраться несложно ![]() А также граждане программеры RTFM, и смотрите экзамплы и всё сразу станет понятным ![]() P.S. Неругайте сильно за ошибки синтаксические и речевые, буду признателен если укажите на ошибки в теории, надеюсь каму нибудь эта статья поможет ![]() |
Автор: aspirin2003 15.6.2009, 08:59 |
ecspertiza, спасибо Вам, статья просто замечательная! |
Автор: abrek 27.3.2011, 01:26 | ||
На основе вашего кода сделал клиента... в ответ за запрос получаю:
как из такой конструкции извлечь значения USER_EMAIL, USER_NAME и т.д. ? |
Автор: Denjs 11.4.2011, 13:56 | ||
Можно я посмею немного попиариться - т.к. тема важная, и польза от пиара будет. ссылка на Russian Qt Forum : http://www.prog.org.ru/index.php?topic=16542.msg110104
Там рассматриваются QtSOAP, Axis2/C, WSF Staff, gSoap, KdSoap, FEAST. Есть ссылки на сайты, примеры связки с Qt - в топике и ссылки на примеры, сравнительные харакетристики, рассуждения и пр. Т.к. считаю что у статьи должне быть только один источник - то потому даю только ссылку. |