Програмиране на Интернет операции

Страницата е създадена на:15 април 2019 и редактирана на:15 април 2019

Класовете с помощта на които се осъществяват Интернет операции са обединени в модула QtNetwork и функциите, отнасящи се до тези класове се намират в библиотека със същото име. Входната страница на документацията за този модул е:

http://doc.qt.io/qt-5/qtnetwork-index.html

За да може да използвате тази библиотека е необходимо да добавите следния ред в проектния файл .pro на проекта си:

QT += network

Изтегляне на файл от Интернет

От версия 4.4 за връзка с Интернет се препоръчва използването на обект от клас QNetworkAccessManager. За нуждите на едно приложение е достатъчно създаването на само един обект от този клас, например:

QNetworkAccessManager accessManager;

и методите на този обект get, post и put да се използват за всички интернет заявки на приложението. Интирнет заявките се представят с обекти от клас QNetworkRequest, които се подават како параметри към тези методи. Най-често използваният конструктор на обект от клас QNetworkRequest приема параметър, който е обект от клас QUrl – класът в Qt предназначен за представяне на интернет адреси.

За получаване на резултата от изпълнението на заявките, със сигнала finished на обекта от клас QNetworkAccessManager се свързва слот от друг обект, например:

connect(&accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onDownloadFinisfed(QNetworkReply*)));

За изтегляне на файл, се използва:

QNetworkReply *replay = accsessManager.get( QNetworkRequest( QUrl( "ИнтернетАдрес" ) ) );

Метод get връща указател към обект от тип QNetworkReply и ако е необходимо да се прихване възникването на грешка, може да се свърже сигнала error на този обект със слот от друг обект, който ще обработи възникналата грешка. Например:

connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(slotError(QNetworkReply::NetworkError)));

Достъп до получените от Интернет данни се получават чрез обекта от клас QnetworkReply, например, чрез метода му readAll(). Този метод връща получените данни във вид на поредица от байтове (QByteArray). Могат да бъдат обработени директно или да бъдат записани във файл.

 

Направено с MyCMS. Copyright CC BY-ND 4.0.