Friendiqa/v0.001/source-android/common/xhr.h

61 lines
1.3 KiB
C++

#ifndef XHR_H
#define XHR_H
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QObject>
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)
public:
static XHR *instance();
explicit XHR(QObject *parent = 0);
void setUrl(QString url);
// void setLogin(QString login);
QString url() const;
QString login() const;
signals:
void urlChanged();
void loginChanged();
void success(QString data);
void error(QString data, int code);
public slots:
void setLogin(QString login);
void setParam(QString name, QString value);
void setImageFileParam(QString name, QString url);
void clearParams();
void post();
void get();
private slots:
void onReplyError(QNetworkReply::NetworkError code);
void onReplySuccess();
void onReadyRead();
void onSSLError(const QList<QSslError> &errors);
private:
QByteArray buffer;
QString m_url;
QString m_login;
QHash<QString, QString> params;
QHash<QString, QString> files;
QNetworkAccessManager manager;
QNetworkRequest request;
QNetworkReply *reply;
QString bufferToString();
};
#endif // XHR_H