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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QNetworkAccessManager, get запрос и таймаут ожидания  (Прочитано 10529 раз)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« : Январь 20, 2012, 14:21 »

При недоступности сервера, get запрос отбивается через 20 секунд. Вопрос - как увиличить это время? Ничего путнего не нагуглил.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
thechicho
Гость
« Ответ #1 : Январь 22, 2012, 16:58 »

проверять условие, если не удовлетворяет, еще раз запрос слать.
использовать goto Веселый
или цикл, в зависимости от религиозных взглядов)
Записан
zoro86
Гость
« Ответ #2 : Январь 25, 2012, 08:41 »

может так...

 request.setRawHeader("Keep-Alive", 30000);
 request.setRawHeader("Connection", "keep-alive");
Записан
sendevent
Гость
« Ответ #3 : Январь 25, 2012, 10:54 »

Таймаут - на уровне ОС, не может (и не должен) изменяться приложением. Если сервак свой - можно поковырять на нем айпитейблз, в любом случае больше 20 сек на хттпшный гет в 21м веке - как минимум, странно :-)
Keep-Alive - это уровень хттп (1.1, кстати, т.е. если серв на 1.0, что не такая уж и редкость, то не поймет. Да и не причем тут оно). К тому же, если
При недоступности сервера
означает что-то вроде "Connection refused" или "No route to host" - это, кажется, сетевой (не важно, главное - не прикладной).
Во-первых, нефиг геты слать на лежащий сервер, во-вторых - требуй нормальную сетевую инфраструктуру и долива после отстоя :-)
Если все же хочется увеличить таймаут - в кедах настраивается в Параметры системы->Настройка сети->Параметры сети, в гноме наверняка чтото похожее. Через консоль - сам гугли.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Январь 25, 2012, 10:56 »

sendevent, косяк в том, что запрашиваю данные у железки, которая в это время еще дохрена всего делает (а проц слабенький) и она может не успеть за 20 секунд ответить.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
thechicho
Гость
« Ответ #5 : Январь 25, 2012, 22:50 »

я предложил самое разумное и оптимальное решение.
если все же надо увеличить таймаут, потому что хочется, делай через сокеты Улыбающийся
« Последнее редактирование: Январь 25, 2012, 22:54 от thechicho » Записан
zoro86
Гость
« Ответ #6 : Январь 26, 2012, 14:18 »

Тут по моему проблема не на клиенте а на сервере...
так как у меня QNAM

при вот таком раскладе без таймера держится 45 сек.

     QNetworkReply *reply = pManager.post(a_request, postData);
     connect(reply, SIGNAL(finished()), this, SLOT(slotFinished()));

потом ошибку дает... QNetworkReply::UnknownNetworkError

если у вас на серваге apach + php то надо смотреть в сторону параметра

<?php
set_time_limit();

?>
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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