Russian Qt Forum
Ноябрь 23, 2024, 21:00
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
Как получить состояние при работе с QNetworkAccessManager
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как получить состояние при работе с QNetworkAccessManager (Прочитано 7274 раз)
QCasper
Гость
Как получить состояние при работе с QNetworkAccessManager
«
:
Октябрь 22, 2010, 12:51 »
В QHttp есть замечательный сигнал stateChanged, который сообщает о текущем состоянии запроса. Как получить нечто подобное, используя QNetworkAccessManager и QNetworkReply (ну или используя дополнительные классы, связанные с этими двумя)?
Записан
sendevent
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #1 :
Октябрь 22, 2010, 13:22 »
см. сигналы:
QNetworkReply
QNetworkAccessManager
и, если нужны только хттп(с), можно глянуть на модуль QtWebKit.
upd: глянул на stateChanged - поторопился, не совсем то... можно сэмулировать "нечто подобное" (сендин/ридин/иррор), но всякие хостлукап/коннектин - видимо, нет.
«
Последнее редактирование: Октябрь 22, 2010, 13:26 от sendevent
»
Записан
BRE
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #2 :
Октябрь 22, 2010, 13:47 »
Цитата: sendevent от Октябрь 22, 2010, 13:22
но всякие хостлукап/коннектин - видимо, нет.
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.
Записан
QCasper
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #3 :
Октябрь 22, 2010, 15:45 »
BRE
, а можно короткий пример кода, как с участием QNetworkAccessManager получить хостлукап?
Записан
BRE
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #4 :
Октябрь 22, 2010, 17:10 »
Цитата: QCasper от Октябрь 22, 2010, 15:45
BRE
, а можно короткий пример кода, как с участием QNetworkAccessManager получить хостлукап?
Нет.
Потому, что я полез смотреть как получить хоть какую-то ссылку на рабочий сокет и пока ничего не нашел.
Записан
QCasper
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #5 :
Октябрь 23, 2010, 13:59 »
Цитата: BRE от Октябрь 22, 2010, 17:10
Нет.
Потому, что я полез смотреть как получить хоть какую-то ссылку на рабочий сокет и пока ничего не нашел.
Было бы всё так просто, я бы эту тему не создавал
Записан
GNU Dimarik
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #6 :
Октябрь 24, 2010, 17:54 »
Не пойму вашей любви к QNetworkAccessManager.А что если придется использовать KeepAlive?
Что тогда делать будешь?
Имхо пиши на сокетах,QNetworkAccessManager это черный ящик для быстрого решения проблемы без лишних сложностей,но в обмен ты платишь тем,что не можешь контролировать ситуацию.
Записан
ufna
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #7 :
Октябрь 25, 2010, 09:56 »
чорт, да вся Qt это чорный ящик, я ж не могу контролировать машинный код! ((((
Записан
sne
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #8 :
Октябрь 25, 2010, 15:52 »
Немножко офф-топика, если позволите.
QHttp нонче имеет статус депрекэйтед, в то же время я не нашел как в QNetworkAccessManager использовать не дефолтный ip системы.
Т.е. есть сервер с 100+ ip адрессами, на них свои домены, необходимо с них (с ip) отсылать HTTP запросы. Раньше можно было забиндить ip для QTcpSocket и назначить его QHttp.
Подводя итог, мя негодует. Как можно объявлять классы устаревшими, когда замены им нет!?
Записан
QCasper
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #9 :
Октябрь 26, 2010, 16:33 »
Цитата: GNU Dimarik от Октябрь 24, 2010, 17:54
Не пойму вашей любви к QNetworkAccessManager.А что если придется использовать KeepAlive?
Что тогда делать будешь?
Запью с горя.
Это не столько любовь, сколько следование советам разработчиков библиотеки - им виднее, чем мне.
Цитата: GNU Dimarik от Октябрь 24, 2010, 17:54
Имхо пиши на сокетах,QNetworkAccessManager это черный ящик для быстрого решения проблемы без лишних сложностей,но в обмен ты платишь тем,что не можешь контролировать ситуацию.
Вот представь, мне нужно по http грузить данные и показывать, а статус нужен только для того, чтобы отображать его в строке состояния.
И зачем я буду реализовывать весь http самостоятельно?
Записан
voral
Гость
Re: Как получить состояние при работе с QNetworkAccessManager
«
Ответ #10 :
Декабрь 08, 2010, 11:27 »
Цитата: QCasper от Октябрь 26, 2010, 16:33
Вот представь, мне нужно по 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.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...