Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QtSoap-client + web-service .NET 
V
    Опции темы
Greeneyed
Дата 3.6.2011, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Есть клиент на Qt, который должен работать с веб-сервисами.

Код

void WebDataProvider::callWebService()
{
    connect(&http, SIGNAL(responseReady(QtSoapMessage)), this, SLOT(getResponse(QtSoapMessage)));

    http.setHost("xxx.xxx.xxx", 80);
    http.setAction("http://tempuri.org/SendMessage");


    QtSoapMessage request;
    request.setMethod(QtSoapQName("SendMessage", "htpp://tempuri.org/"));

    request.addMethodArgument("From", "", "bla-bla-bla");
    request.addMethodArgument("To", "", "bla-bla-bla" );
    request.addMethodArgument("Subject", "", "mysubject");
    request.addMethodArgument("Body", "", "bodydydy");


    // Submit the method request to the web service.
    http.submitRequest(request, "/WebService.asmx");

    qDebug() << request.toXmlString();
}
//-------------------------------------------------------------

void WebDataProvider::getResponse(QtSoapMessage mes)
{
    const QtSoapType &res = mes.returnValue();
    qDebug("\n\n\n");
    qDebug() << mes.toXmlString();
}


Запрос к сервису уходит, а в ответ от сервиса приходит "From is null". То есть сервис запускается, но параметры ему не передаются.
Сервис выглядит вот так.

Код

POST /MedExWebService.asmx HTTP/1.1
Host: xxx.xxx.xxx
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/SendMessage"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SendMessage xmlns="http://tempuri.org/">
      <From>string</From>
      <To>string</To>
      <Subject>string</Subject>
      <Body>string</Body>
    </SendMessage>
  </soap:Body>
</soap:Envelope>



HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SendMessageResponse xmlns="http://tempuri.org/">
      <SendMessageResult>string</SendMessageResult>
    </SendMessageResponse>
  </soap:Body>
</soap:Envelope>

PM MAIL   Вверх
Greeneyed
Дата 6.6.2011, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Особо подходящего решения не нашел. Есть вариант использовать gSOAP, но публиковать исходники не хочется, а на покупку пока нет денег.
Решил написать свой небольшой класс, который формирует post-запросы к сервису, а потом парсит ответ. Благо, работа с XML в Qt несложная.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.