2015-07-17 5 views
2

Я прочитал документ с сигналом закончен(), он не говорит, что законченный() всегда излучается. И я прочитал сигнал ошибки():QNetworkReply всегда испускает законченный()?

аннулируются QNetworkReply :: Ошибка (QNetworkReply :: NetworkError код) Этот сигнал испускается, когда ответ обнаруживает ошибку в обработке. Сигнал завершен(), вероятно, будет следовать, указывая, что соединение завершено.

Параметр код содержит код ошибки, который был обнаружен. Вызов errorString() для получения текстового представления ошибки условие.

Примечание: Не удаляйте объект в слоте, соединенным с этим сигналом. Используйте deleteLater().

См. Также error() и errorString().

Имеет ли строка The finished() signal will probably follow то, что при некоторых условиях QNetworkReply не испускает законченные()?

ответ

2

Для QNetworkReply ошибки сигнала можно с уверенностью ожидать, коды ошибок, которые не означают неисправное соединение. Например:

QNetworkReply :: ContentNotFoundError 203 удаленный контент был не найдено на сервере (аналогично ошибке HTTP 404)

Соединение, безусловно, еще не закончил в случае, описанном выше. Исходящий сигнал отсутствует.

QNetworkReply :: RemoteHostClosedError 2 удаленный сервер закрыл соединение преждевременно, до того, как весь ответ был получен и обработан

Соединение определенно закончено тогда. И сигнал окончания был испущен.

+0

Не могли бы вы привести пример подключения к ошибке()? – zzy

+0

ConnectionRefusedError, RemoteHostClosedError и еще несколько. – AlexanderVX

+0

Я прочитал исходный код QNetworkReply, все сигналы ошибки сопровождаются законченным сигналом, насколько я могу найти. Не могли бы вы дать какую-то демонстрацию, чтобы показать случай, когда сигнал ошибки испускается, а готовый сигнал не испускается? – zzy

Смежные вопросы