Название: QHttp и таймаут ответа от сервера.. где? Отправлено: kuzulis от Март 04, 2009, 13:57 Доброго всем здравия!
А подскажите пожалуйста, имеется ли в классе QHttp нечто вроде настройки таймаута? А то я что-то не нашел... И сколько будет ждать по умолчанию ответа от сервера клиент построенный на QHttp? Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: Admin от Март 04, 2009, 16:50 Как я понял по доке - таймаута нет. Нужно обрабатывать его руками. А таймаут по умолчанию - зависит от настройки вашей сети. На глазок около 30 секунд.
Используйте QNetworkReply - там даже сигнал таймаута есть. Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: kuzulis от Март 04, 2009, 16:56 т.е QHttp будет ожидать ответа в течении ~30 секунд?
Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: Admin от Март 04, 2009, 18:22 это на глазок)
Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: kuzulis от Март 05, 2009, 08:37 А как тогда можно в QHttp реализовать метод прерывания коннекта (типа disconnect) при истечении определенного времени?
время то контролировать по таймеру можно, а вот сам метод типа "прервать коннект" я не представляю как реализовать ЗЫ: т.е в Qhttp нет метода прерывания ожидания ответа (я не нашел по крайней мере) Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: BRE от Март 05, 2009, 08:59 т.е в Qhttp нет метода прерывания ожидания ответа (я не нашел по крайней мере) QHttp::abortКод
Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: kuzulis от Март 05, 2009, 09:44 Упс, не внимателен... Спасибо :)
Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: catprog от Январь 18, 2010, 18:47 Знаю что тема старая, но у меня почти такой же вопрос, надо изменить таймаут, но не уменьшить а увеличить.
Сейчас наблюдаю картину, если страница мне не отвечает больше минуты, то идет разрыв и запуск загрузки по новой. Как сделать чтобы ответ ожидался хотябы минут 10? Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: Akaiten от Январь 19, 2010, 10:02 Знаю что тема старая, но у меня почти такой же вопрос, надо изменить таймаут, но не уменьшить а увеличить. Сейчас наблюдаю картину, если страница мне не отвечает больше минуты, то идет разрыв и запуск загрузки по новой. Как сделать чтобы ответ ожидался хотябы минут 10? У QHttp есть метод setSocket( QTcpSocket * socket ), у сокета есть паблик метод waitForConnected ( int msecs = 30000 ). Может быть если установить соединение с сервером в ручную через сокет, а потом задать его для QHttp, вдруг прокатит? :) Кстати отсюда ответ на вопрос: QHttp ждёт установки соединения максимум 30 секунд. Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: lit-uriy от Январь 19, 2010, 10:09 завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager
Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: BlackTass от Январь 19, 2010, 10:24 завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager [offtop] как только вы расскажете мне как для QNetworkAccessManager задать свой сокет для общения с серваком (аля setSocket() в QHttp), так сразу. [/offtop] Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: catprog от Январь 19, 2010, 15:01 завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager А где в QNetworkAccessManager можно задать таймаут? На первый взгляд нету как и в QHTTP.Название: Re: QHttp и таймаут ответа от сервера.. где? Отправлено: SABROG от Январь 20, 2010, 23:56 завязывайте с QHttp - это устаревший класс. вместо него смотрите QNetworkAccessManager А где в QNetworkAccessManager можно задать таймаут? На первый взгляд нету как и в QHTTP.Если внимательно изучить классы QNetworkAccessManager, то можно заметить, что QNetworkReply наследуется от QIODevice. В некоторых случаях это обычный файл, а в других это и есть сокет. Можно конечно тупо сделать приведение типов и достучаться до нужного метода, но правильней будет унаследоваться от QNetworkReply и создать свой модифицированный протокол. Пример можно найти здесь http://doc.trolltech.com/qq/32/qq32-webkit-protocols.html С другой стороны есть и третий вариант... Цитировать Знаю что тема старая, но у меня почти такой же вопрос, надо изменить таймаут, но не уменьшить а увеличить. Сейчас наблюдаю картину, если страница мне не отвечает больше минуты, то идет разрыв и запуск загрузки по новой. Как сделать чтобы ответ ожидался хотябы минут 10? Большинство сетевых приложений может ожидать соединения достаточно долго. В этом подходе есть большой минус - во время ожидания могут происходить смены настройки сети, может появляться/пропадать интернет. Как показали мои наблюдения большинство программ так и ожидают соединения несмотря на то, что сервер уже доступен. Тот же firefox может тщетно пытаться соединиться с сайтом, а достаточно просто перезагрузить страницу вручную. Исходя из этого я предлагаю оставить таймаут как есть (или уменьшить) и сделать ограниченное количество попыток соединиться с сервером. |