QNetworkAccessManager: Простейшие GET-запросы

QNetworkAccessManager: Простейшие GET-запросы

Займемся решением одной из самых простых, но и достаточно распространенных задач сетевого программирования: получения данных через GET-запрос. Для этого воспользуемся классом QNetworkAccessManager.

Замечание: Не забудьте, что для использования сетевых библиотек в Qt необходимо явно затребовать их в pro-файле проекта:

Создадим простое приложение, которое загружает данные по URL, и отображает их в текстовом поле:

qnetworkaccessmanager-demo-thumbnail

Замечание 1: Компонент QTextEdit автоматически преобразовывает HTML-код в его читаемое представление, поэтому мы получаем очень ограниченную версию браузера (без работающих гиперссылок, css, изображений и JavaScript). Если же вам нужно полноценное отображение веб-страниц, то советую обратить внимание на QWebView.

Замечание 2: Наше приложение может загружать не только веб-страницы (и прочую текстовую информацию), но и бинарные данные (например, изображения) по их URL. Все упирается в визуализацию, которой сейчас нет.

И сразу к делу. Заголовочный файл networkmanagerdemowidget.h:

Реализация networkmanagerdemowidget.cpp:

Важно: Результат выполнения запроса приходит к нам асинхронно через сигнал finished() объекта m_manager. За освобождение ресурсов ответа reply ответственны мы, поэтому для предотвращения утечки памяти нужно вызвать reply->deleteLater().

Замечание: URL должен быть полным, поэтому без указания протокола (например http://) обработка запроса окончится неудачей.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий