mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-10 19:00:53 +00:00
76 lines
1.6 KiB
C++
76 lines
1.6 KiB
C++
/**
|
|
* Based on http://www.creativepulse.gr/en/blog/2014/restful-api-requests-using-qt-cpp-for-linux-mac-osx-ms-windows
|
|
* By Alex Stylianos
|
|
*
|
|
**/
|
|
|
|
#ifndef HTTPREQUESTWORKER_H
|
|
#define HTTPREQUESTWORKER_H
|
|
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include <QMap>
|
|
#include <QNetworkAccessManager>
|
|
#include <QNetworkReply>
|
|
|
|
enum HttpRequestVarLayout {NOT_SET, ADDRESS, URL_ENCODED, MULTIPART};
|
|
|
|
|
|
class SWGHttpRequestInputFileElement {
|
|
|
|
public:
|
|
QString variable_name;
|
|
QString local_filename;
|
|
QString request_filename;
|
|
QString mime_type;
|
|
|
|
};
|
|
|
|
|
|
class HttpRequestInput {
|
|
|
|
public:
|
|
QString url_str;
|
|
QString http_method;
|
|
HttpRequestVarLayout var_layout;
|
|
QMap<QString, QString> vars;
|
|
QMap<QString, QString> headers;
|
|
QList<SWGHttpRequestInputFileElement> files;
|
|
QByteArray request_body;
|
|
|
|
HttpRequestInput();
|
|
HttpRequestInput(QString v_url_str, QString v_http_method);
|
|
void initialize();
|
|
void add_var(QString key, QString value);
|
|
void add_file(QString variable_name, QString local_filename, QString request_filename, QString mime_type);
|
|
|
|
};
|
|
|
|
|
|
class HttpRequestWorker : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
QByteArray response;
|
|
QNetworkReply::NetworkError error_type;
|
|
QString error_str;
|
|
|
|
explicit HttpRequestWorker(QObject *parent = 0);
|
|
virtual ~HttpRequestWorker();
|
|
|
|
QString http_attribute_encode(QString attribute_name, QString input);
|
|
void execute(HttpRequestInput *input);
|
|
|
|
signals:
|
|
void on_execution_finished(HttpRequestWorker *worker);
|
|
|
|
private:
|
|
QNetworkAccessManager *manager;
|
|
|
|
private slots:
|
|
void on_manager_finished(QNetworkReply *reply);
|
|
|
|
};
|
|
|
|
#endif // HTTPREQUESTWORKER_H
|