QT 4: программирование GUI на С++
Шрифт:
Функция main завершает программу. Если пользователь не задает адрес URL в командной строке, мы выдаем сообщение об ошибке и завершаем программу.
В обоих примерах применения протокола FTP данные, полученные функцией get, записывались в объект QFile. Это не обязательно должно быть так. Если бы мы
Мы могли бы также не задавать в функции get аргумент с устройством ввода—вывода или передать нулевой указатель. Класс QFtp тогда генерирует сигнал readyRead при поступлении каждой новой порции данных и данные могут считываться при помощи функции read или readAll.
Написание НТТР—клиента
Класс QHttp реализует клиентскую часть протокола HTTP в Qt. Он содержит различные функции для выполнения самых распространенных операций протокола HTTP, включая get и post, и обеспечивает средство выполнения произвольных запросов HTTP. Если вы прочитали предыдущий раздел о классе QFtp, вы обнаружите, что существует много общего у классов QFtp и QHttp.
Класс QHttp работает асинхронно. Когда мы вызываем такие функции, как get или post, управление сразу же возвращается к нам, а пересылка данных осуществляется после передачи управления обратно в цикл обработки событий Qt. Это обеспечивает работоспособность интерфейса пользователя во время обработки запросов HTTP.
Мы рассмотрим пример консольного приложения с именем httpget, демонстрирующего способ загрузки файла с использованием протокола HTTP. Мы не приводим здесь заголовочный файл, поскольку данный пример очень напоминает пример ftpget, который мы использовали в предыдущем разделе.
В конструкторе мы подсоединяем сигнал done(bool) объекта QHttp к закрытому слоту httpDone(bool).
Функция getFile проверяет
Запросы HTTP ставятся в очередь и обрабатываются асинхронно в цикле обработки событий Qt. На завершение выполнения запросов указывает сигнал done(bool) объекта QHttp, который мы подсоединили к слоту httpDone(bool) в конструкторе.
После выполнения запросов HTTP мы файл закрываем, уведомляя пользователя о возникновении ошибки.
Функция main очень похожа на такую же функцию в примере ftpget:
Мистики, розенкрейцеры, тамплиеры в Советской России
Научно-образовательная:
история
религиоведение
рейтинг книги