Russian Qt Forum

Qt => Работа с сетью => Тема начата: vipet от Сентябрь 24, 2007, 16:48



Название: QT, https, post - не вызывается код для сингала QHttp::readReady
Отправлено: vipet от Сентябрь 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'ами что-то?


Название: Re: QT, https, post - не вызывается код для сингала QHttp::readReady
Отправлено: WW от Сентябрь 24, 2007, 17:16
Чудес не бывает. Смотри что пишет консоль при вызове соответсвующего connect(...)


Название: Re: QT, https, post - не вызывается код для сингала QHttp::readReady
Отправлено: vipet от Сентябрь 24, 2007, 23:15

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

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

Только непонятно почему на https в хосте (ну и соотв. enum) не было ругани?
А если напрямую QSslSocket попытаться использовать, то ругань есть..