Russian Qt Forum
Ноябрь 23, 2024, 15:08
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
QHttp и таймаут ответа от сервера.. где?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QHttp и таймаут ответа от сервера.. где? (Прочитано 8596 раз)
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
QHttp и таймаут ответа от сервера.. где?
«
:
Март 04, 2009, 13:57 »
Доброго всем здравия!
А подскажите пожалуйста, имеется ли в классе QHttp нечто вроде настройки таймаута?
А то я что-то не нашел...
И сколько будет ждать по умолчанию ответа от сервера клиент построенный на QHttp?
Записан
ArchLinux x86_64 / Win10 64 bit
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #1 :
Март 04, 2009, 16:50 »
Как я понял по доке - таймаута нет. Нужно обрабатывать его руками. А таймаут по умолчанию - зависит от настройки вашей сети. На глазок около 30 секунд.
Используйте QNetworkReply - там даже сигнал таймаута есть.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #2 :
Март 04, 2009, 16:56 »
т.е QHttp будет ожидать ответа в течении ~30 секунд?
Записан
ArchLinux x86_64 / Win10 64 bit
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #3 :
Март 04, 2009, 18:22 »
это на глазок)
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #4 :
Март 05, 2009, 08:37 »
А как тогда можно в QHttp реализовать метод прерывания коннекта (типа disconnect) при истечении определенного времени?
время то контролировать по таймеру можно, а вот сам метод типа "прервать коннект" я не представляю как реализовать
ЗЫ:
т.е в Qhttp нет метода прерывания ожидания ответа (я не нашел по крайней мере)
Записан
ArchLinux x86_64 / Win10 64 bit
BRE
Гость
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #5 :
Март 05, 2009, 08:59 »
Цитата: kuzulis от Март 05, 2009, 08:37
т.е в Qhttp нет метода прерывания ожидания ответа (я не нашел по крайней мере)
QHttp::abort
Код
C++ (Qt)
QTimer
::
singleShot
(
10000
,
m_http
,
SLOT
(
abort
(
)
)
)
;
«
Последнее редактирование: Март 05, 2009, 09:09 от BRE
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #6 :
Март 05, 2009, 09:44 »
Упс, не внимателен... Спасибо
Записан
ArchLinux x86_64 / Win10 64 bit
catprog
Гость
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #7 :
Январь 18, 2010, 18:47 »
Знаю что тема старая, но у меня почти такой же вопрос, надо изменить таймаут, но не уменьшить а увеличить.
Сейчас наблюдаю картину, если страница мне не отвечает больше минуты, то идет разрыв и запуск загрузки по новой. Как сделать чтобы ответ ожидался хотябы минут 10?
Записан
Akaiten
Гость
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #8 :
Январь 19, 2010, 10:02 »
Цитата: catprog от Январь 18, 2010, 18:47
Знаю что тема старая, но у меня почти такой же вопрос, надо изменить таймаут, но не уменьшить а увеличить.
Сейчас наблюдаю картину, если страница мне не отвечает больше минуты, то идет разрыв и запуск загрузки по новой. Как сделать чтобы ответ ожидался хотябы минут 10?
У QHttp есть метод setSocket( QTcpSocket * socket ), у сокета есть паблик метод waitForConnected ( int msecs = 30000 ). Может быть если установить соединение с сервером в ручную через сокет, а потом задать его для QHttp, вдруг прокатит?
Кстати отсюда ответ на вопрос: QHttp ждёт установки соединения максимум 30 секунд.
«
Последнее редактирование: Январь 19, 2010, 10:04 от Akaiten
»
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #9 :
Январь 19, 2010, 10:09 »
завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager
Записан
Юра.
BlackTass
Гость
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #10 :
Январь 19, 2010, 10:24 »
Цитата: lit-uriy от Январь 19, 2010, 10:09
завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager
[offtop]
как только вы расскажете мне как для QNetworkAccessManager задать свой сокет для общения с серваком (аля setSocket() в QHttp), так сразу.
[/offtop]
Записан
catprog
Гость
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #11 :
Январь 19, 2010, 15:01 »
Цитата: lit-uriy от Январь 19, 2010, 10:09
завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager
А где в QNetworkAccessManager можно задать таймаут? На первый взгляд нету как и в QHTTP.
Записан
SABROG
Гость
Re: QHttp и таймаут ответа от сервера.. где?
«
Ответ #12 :
Январь 20, 2010, 23:56 »
Цитата: catprog от Январь 19, 2010, 15:01
Цитата: lit-uriy от Январь 19, 2010, 10:09
завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager
А где в QNetworkAccessManager можно задать таймаут? На первый взгляд нету как и в QHTTP.
Если внимательно изучить классы QNetworkAccessManager, то можно заметить, что QNetworkReply наследуется от QIODevice. В некоторых случаях это обычный файл, а в других это и есть сокет. Можно конечно тупо сделать приведение типов и достучаться до нужного метода, но правильней будет унаследоваться от QNetworkReply и создать свой модифицированный протокол. Пример можно найти здесь
http://doc.trolltech.com/qq/32/qq32-webkit-protocols.html
С другой стороны есть и третий вариант...
Цитировать
Знаю что тема старая, но у меня почти такой же вопрос, надо изменить таймаут, но не уменьшить а увеличить.
Сейчас наблюдаю картину, если страница мне не отвечает больше минуты, то идет разрыв и запуск загрузки по новой. Как сделать чтобы ответ ожидался хотябы минут 10?
Большинство сетевых приложений может ожидать соединения достаточно долго. В этом подходе есть большой минус - во время ожидания могут происходить смены настройки сети, может появляться/пропадать интернет. Как показали мои наблюдения большинство программ так и ожидают соединения несмотря на то, что сервер уже доступен. Тот же firefox может тщетно пытаться соединиться с сайтом, а достаточно просто перезагрузить страницу вручную. Исходя из этого я предлагаю оставить таймаут как есть (или уменьшить) и сделать ограниченное количество попыток соединиться с сервером.
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...