Russian Qt Forum
Май 07, 2024, 17:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT, https, post - не вызывается код для сингала QHttp::readReady  (Прочитано 4794 раз)
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« : Сентябрь 24, 2007, 16:48 »


Qt последняя коммерческая, винда XP.

Делаю HTTP POST и не знаю как прочитать ответ сервера.
(Никогда раньше такого не делал, может быть какую-то мелкую деталь не знаю).

Фрагмент кода:

Код:
http = new QHttp(this);

// коннект *всех* слотов QHttp
  connect(http, SIGNAL(requestFinished(int,bool)), SLOT(httpRequestFinished(int,bool)));
  connect(http, SIGNAL(requestStarted(int)), SLOT(httpRequestStarted(int)));
  connect(http, SIGNAL(readyRead(const QHttpResponseHeader &)), this,
      SLOT(httpReadyRead(const QHttpResponseHeader &)));
  connect(http, SIGNAL(responseHeaderReceived(const QHttpResponseHeader &)),
          this, SLOT(readResponseHeader(const QHttpResponseHeader &))); 
 
  connect(http, SIGNAL(authenticationRequired(const QString &, quint16, QAuthenticator *)),
          this, SLOT(slotAuthenticationRequired(const QString &, quint16, QAuthenticator *)));

  connect(http, SIGNAL(sslErrors(const QList<QSslError> &)), this,
            SLOT(httpSSLErrors(const QList<QSslError> &)));

  connect(http, SIGNAL(done(bool)), SLOT(httpDone(bool)));
  connect(http, SIGNAL(stateChanged(int)), SLOT(httpStateChanged(int)));

  QByteArray params("");
  params.clear();
  params.append(нужные параметры);

  http->setHost("someserver.com", QHttp::ConnectionModeHttps, 0);
  http->post("/somedir", params, 0);

В итоге состояние меняется (отслеживаю в httpStateChanged) так:

2 (connecting)
3 (sending)
4 (reading)
6 (closing)

Все завершается без ошибок.

НО: httpReadyRead не вызывается!

В чем может быть дело?

Может со thread'ами что-то?
Записан
WW
Гость
« Ответ #1 : Сентябрь 24, 2007, 17:16 »

Чудес не бывает. Смотри что пишет консоль при вызове соответсвующего connect(...)
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #2 : Сентябрь 24, 2007, 23:15 »


Вобщем, qt была собрана без OpenSSL.

Сейчас соберу с ним, посмотрю что получится.

Только непонятно почему на https в хосте (ну и соотв. enum) не было ругани?
А если напрямую QSslSocket попытаться использовать, то ругань есть..
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.