1 #pragma once 2 3 #include <QNetworkRequest> 4 #include <QNetworkReply> 5 6 #ifdef Q_OS_WIN 7 8 class lcHttpReply : public QThread 9 { 10 Q_OBJECT 11 12 public: 13 lcHttpReply(QObject* Parent, const QString& URL); 14 15 void run() override; 16 error()17 bool error() const 18 { 19 return mError; 20 } 21 abort()22 void abort() 23 { 24 mAbort = true; 25 } 26 readAll()27 QByteArray readAll() const 28 { 29 return mBuffer; 30 } 31 32 protected: 33 bool mError; 34 bool mAbort; 35 QByteArray mBuffer; 36 QString mURL; 37 }; 38 39 class lcHttpManager : public QObject 40 { 41 Q_OBJECT 42 43 public: 44 lcHttpManager(QObject* Owner = nullptr); 45 46 lcHttpReply* DownloadFile(const QString& Url); 47 48 signals: 49 void DownloadFinished(lcHttpReply* Reply); 50 }; 51 52 #else 53 54 class lcHttpReply : public QNetworkReply 55 { 56 Q_OBJECT 57 lcHttpReply(QObject * Parent)58 lcHttpReply(QObject* Parent) 59 : QNetworkReply(Parent) 60 { 61 } 62 }; 63 64 class lcHttpManager : public QNetworkAccessManager 65 { 66 Q_OBJECT 67 68 public: 69 lcHttpManager(QObject* Owner = nullptr); 70 71 lcHttpReply* DownloadFile(const QString& Url); 72 73 signals: 74 void DownloadFinished(lcHttpReply* Reply); 75 76 protected slots: 77 void Finished(QNetworkReply* Reply); 78 }; 79 80 #endif 81