Название: Как получить состояние при работе с QNetworkAccessManager Отправлено: QCasper от Октябрь 22, 2010, 12:51 В QHttp есть замечательный сигнал stateChanged, который сообщает о текущем состоянии запроса. Как получить нечто подобное, используя QNetworkAccessManager и QNetworkReply (ну или используя дополнительные классы, связанные с этими двумя)?
Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: sendevent от Октябрь 22, 2010, 13:22 см. сигналы:
QNetworkReply (http://doc.qt.nokia.com/4.7-snapshot/qnetworkreply.html#downloadProgress) QNetworkAccessManager (http://doc.qt.nokia.com/4.7-snapshot/qnetworkaccessmanager.html#authenticationRequired) и, если нужны только хттп(с), можно глянуть на модуль QtWebKit. upd: глянул на stateChanged - поторопился, не совсем то... можно сэмулировать "нечто подобное" (сендин/ридин/иррор), но всякие хостлукап/коннектин - видимо, нет. Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: BRE от Октябрь 22, 2010, 13:47 но всякие хостлукап/коннектин - видимо, нет. SocketState QAbstractSocket::state () constЦитировать QAbstractSocket::UnconnectedState 0 The socket is not connected. QAbstractSocket::HostLookupState 1 The socket is performing a host name lookup. QAbstractSocket::ConnectingState 2 The socket has started establishing a connection. QAbstractSocket::ConnectedState 3 A connection is established. QAbstractSocket::BoundState 4 The socket is bound to an address and port (for servers). QAbstractSocket::ClosingState 6 The socket is about to close (data may still be waiting to be written). QAbstractSocket::ListeningState 5 For internal use only. Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: QCasper от Октябрь 22, 2010, 15:45 BRE, а можно короткий пример кода, как с участием QNetworkAccessManager получить хостлукап?
Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: BRE от Октябрь 22, 2010, 17:10 BRE, а можно короткий пример кода, как с участием QNetworkAccessManager получить хостлукап? Нет. :)Потому, что я полез смотреть как получить хоть какую-то ссылку на рабочий сокет и пока ничего не нашел. :) Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: QCasper от Октябрь 23, 2010, 13:59 Нет. :) Потому, что я полез смотреть как получить хоть какую-то ссылку на рабочий сокет и пока ничего не нашел. :) Было бы всё так просто, я бы эту тему не создавал ;) Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: GNU Dimarik от Октябрь 24, 2010, 17:54 Не пойму вашей любви к QNetworkAccessManager.А что если придется использовать KeepAlive?
Что тогда делать будешь? Имхо пиши на сокетах,QNetworkAccessManager это черный ящик для быстрого решения проблемы без лишних сложностей,но в обмен ты платишь тем,что не можешь контролировать ситуацию. Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: ufna от Октябрь 25, 2010, 09:56 чорт, да вся Qt это чорный ящик, я ж не могу контролировать машинный код! ((((
Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: sne от Октябрь 25, 2010, 15:52 Немножко офф-топика, если позволите.
QHttp нонче имеет статус депрекэйтед, в то же время я не нашел как в QNetworkAccessManager использовать не дефолтный ip системы. Т.е. есть сервер с 100+ ip адрессами, на них свои домены, необходимо с них (с ip) отсылать HTTP запросы. Раньше можно было забиндить ip для QTcpSocket и назначить его QHttp. Подводя итог, мя негодует. Как можно объявлять классы устаревшими, когда замены им нет!? Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: QCasper от Октябрь 26, 2010, 16:33 Не пойму вашей любви к QNetworkAccessManager.А что если придется использовать KeepAlive? Что тогда делать будешь? Запью с горя. Это не столько любовь, сколько следование советам разработчиков библиотеки - им виднее, чем мне. Имхо пиши на сокетах,QNetworkAccessManager это черный ящик для быстрого решения проблемы без лишних сложностей,но в обмен ты платишь тем,что не можешь контролировать ситуацию. Вот представь, мне нужно по http грузить данные и показывать, а статус нужен только для того, чтобы отображать его в строке состояния. И зачем я буду реализовывать весь http самостоятельно? Название: Re: Как получить состояние при работе с QNetworkAccessManager Отправлено: voral от Декабрь 08, 2010, 11:27 Вот представь, мне нужно по http грузить данные и показывать, а статус нужен только для того, чтобы отображать его в строке состояния. Так и не надо. Может у меня ассистент другой ;) но:И зачем я буду реализовывать весь http самостоятельно? Цитировать QNetworkReply * QNetworkAccessManager::get ( const QNetworkRequest & request ) В свою очередь QNetworkReply имеет сигналы:Цитировать void downloadProgress ( qint64 bytesReceived, qint64 bytesTotal ) Из описалова:void error ( QNetworkReply::NetworkError code ) void uploadProgress ( qint64 bytesSent, qint64 bytesTotal ) Цитировать This signal is suitable to connecting to QProgressBar::setValue() to update the QProgressBar that provides user feedback. |