#ifndef XHR_H #define XHR_H #include #include #include #include class XHR : public QObject { Q_OBJECT Q_PROPERTY(QString url READ url WRITE setUrl NOTIFY urlChanged) Q_PROPERTY(QString login READ login WRITE setLogin NOTIFY loginChanged) Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged) Q_PROPERTY(QString downloadtype READ downloadtype WRITE setDownloadtype NOTIFY downloadtypeChanged) public: static XHR *instance(); explicit XHR(QObject *parent = 0); QString url() const; QString login() const; QString filename() const; QString downloadtype() const; signals: void urlChanged(); void loginChanged(); void filenameChanged(); void downloadtypeChanged(); void downloaded(QString data); void success(QString data); void error(QString data, int code); public slots: void setUrl(QString url); void setLogin(QString login); void setDownloadtype(QString downloadtype); void setFilename(QString filename); void setParam(QString name, QString value); void setImageFileParam(QString name, QString url); void clearParams(); void post(); void get(); void download(); private slots: void onReplyError(QNetworkReply::NetworkError code); void onReplySuccess(); void onRequestFinished(); void onReadyRead(); void onSSLError(const QList &errors); //void updateDownloadProgress(qint64 bytesRead, qint64 totalBytes); private: QByteArray buffer; QString m_url; QString m_login; QString m_filename; QString m_downloadtype; QHash params; QHash files; QNetworkAccessManager manager; QNetworkRequest request; QNetworkReply *reply; QString bufferToString(); }; #endif // XHR_H