123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- /*
- This file is part of JQLibrary
- Copyright: Jason
- Contact email: 188080501@qq.com
- GNU Lesser General Public License Usage
- Alternatively, this file may be used under the terms of the GNU Lesser
- General Public License version 2.1 or version 3 as published by the Free
- Software Foundation and appearing in the file LICENSE.LGPLv21 and
- LICENSE.LGPLv3 included in the packaging of this file. Please review the
- following information to ensure the GNU Lesser General Public License
- requirements will be met: https://www.gnu.org/licenses/lgpl.html and
- http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- */
- #ifndef JQLIBRARY_INCLUDE_JQNET_H_
- #define JQLIBRARY_INCLUDE_JQNET_H_
- #ifndef QT_NETWORK_LIB
- # error("Please add network in pro file")
- #endif
- // C++ lib import
- #include <functional>
- // Qt lib import
- #include <QSharedPointer>
- #include <QNetworkAccessManager>
- #include <QNetworkReply>
- #include <QHttpMultiPart>
- #include <QNetworkInterface>
- #include <QNetworkAddressEntry>
- namespace JQNet
- {
- QNetworkAddressEntry getNetworkAddressEntry();
- QPair< QNetworkAddressEntry, QNetworkInterface > getNetworkAddressEntryWithNetworkInterface(const bool &ridVm = true);
- QString getHostName();
- #ifdef JQFOUNDATION_LIB
- bool pingIp(const QHostAddress &hostAddress);
- #endif
- class HTTP
- {
- Q_DISABLE_COPY( HTTP )
- public:
- HTTP() = default;
- ~HTTP() = default;
- public:
- inline QNetworkAccessManager &manage() { return manage_; }
- bool get(
- const QNetworkRequest &request,
- QByteArray &target,
- const int &timeout = 30 * 1000
- );
- void get(
- const QNetworkRequest &request,
- const std::function< void(const QByteArray &data) > &onFinished,
- const std::function< void(const QNetworkReply::NetworkError &code, const QByteArray &data) > &onError,
- const int &timeout = 30 * 1000
- );
- bool deleteResource(
- const QNetworkRequest &request,
- QByteArray &target,
- const int &timeout = 30 * 1000
- );
- void deleteResource(
- const QNetworkRequest &request,
- const std::function< void(const QByteArray &data) > &onFinished,
- const std::function< void(const QNetworkReply::NetworkError &code, const QByteArray &data) > &onError,
- const int &timeout = 30 * 1000
- );
- bool post(
- const QNetworkRequest &request,
- const QByteArray &body,
- QByteArray &target,
- const int &timeout = 30 * 1000
- );
- bool post(
- const QNetworkRequest &request,
- const QSharedPointer< QHttpMultiPart > &multiPart,
- QByteArray &target,
- const int &timeout = 30 * 1000
- );
- void post(
- const QNetworkRequest &request,
- const QByteArray &body,
- const std::function< void(const QByteArray &data) > &onFinished,
- const std::function< void(const QNetworkReply::NetworkError &code, const QByteArray &data) > &onError,
- const int &timeout = 30 * 1000
- );
- bool put(
- const QNetworkRequest &request,
- const QByteArray &body,
- QByteArray &target,
- const int &timeout = 30 * 1000
- );
- bool put(
- const QNetworkRequest &request,
- const QSharedPointer< QHttpMultiPart > &multiPart,
- QByteArray &target,
- const int &timeout = 30 * 1000
- );
- void put(
- const QNetworkRequest &request,
- const QByteArray &body,
- const std::function< void(const QByteArray &data) > &onFinished,
- const std::function< void(const QNetworkReply::NetworkError &code, const QByteArray &data) > &onError,
- const int &timeout = 30 * 1000
- );
- #if !( defined Q_OS_LINUX ) && ( QT_VERSION >= QT_VERSION_CHECK( 5, 9, 0 ) )
- bool patch(
- const QNetworkRequest &request,
- const QByteArray &body,
- QByteArray &target,
- const int &timeout = 30 * 1000
- );
- void patch(
- const QNetworkRequest &request,
- const QByteArray &body,
- const std::function< void(const QByteArray &data) > &onFinished,
- const std::function< void(const QNetworkReply::NetworkError &code, const QByteArray &data) > &onError,
- const int &timeout = 30 * 1000
- );
- #endif
- static QPair< bool, QByteArray > get(const QString &url, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > get(const QNetworkRequest &request, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > deleteResource(const QString &url, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > deleteResource(const QNetworkRequest &request, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > post(const QString &url, const QByteArray &body, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > post(const QNetworkRequest &request, const QByteArray &body, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > post(const QNetworkRequest &request, const QSharedPointer< QHttpMultiPart > &multiPart, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > put(const QString &url, const QByteArray &body, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > put(const QNetworkRequest &request, const QByteArray &body, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > put(const QNetworkRequest &request, const QSharedPointer< QHttpMultiPart > &multiPart, const int &timeout = 30 * 1000);
- #if !( defined Q_OS_LINUX ) && ( QT_VERSION >= QT_VERSION_CHECK( 5, 9, 0 ) )
- static QPair< bool, QByteArray > patch(const QString &url, const QByteArray &body, const int &timeout = 30 * 1000);
- static QPair< bool, QByteArray > patch(const QNetworkRequest &request, const QByteArray &body, const int &timeout = 30 * 1000);
- #endif
- private:
- void handle(
- QNetworkReply *reply, const int &timeout,
- const std::function< void(const QByteArray &data) > &onFinished,
- const std::function< void(const QNetworkReply::NetworkError &code, const QByteArray &data) > &onError,
- const std::function< void() > &onTimeout
- );
- private:
- QNetworkAccessManager manage_;
- };
- }
- #endif//JQLIBRARY_INCLUDE_JQNET_H_
|