{{>licenseInfo}} /** * 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 {{prefix}}_HTTPREQUESTWORKER_H #define {{prefix}}_HTTPREQUESTWORKER_H #include #include #include #include #include {{#cppNamespaceDeclarations}} namespace {{this}} { {{/cppNamespaceDeclarations}} enum {{prefix}}HttpRequestVarLayout {NOT_SET, ADDRESS, URL_ENCODED, MULTIPART}; class {{prefix}}HttpRequestInputFileElement { public: QString variable_name; QString local_filename; QString request_filename; QString mime_type; }; class {{prefix}}HttpRequestInput { public: QString url_str; QString http_method; {{prefix}}HttpRequestVarLayout var_layout; QMap vars; QMap headers; QList<{{prefix}}HttpRequestInputFileElement> files; QByteArray request_body; {{prefix}}HttpRequestInput(); {{prefix}}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 {{prefix}}HttpRequestWorker : public QObject { Q_OBJECT public: QByteArray response; QNetworkReply::NetworkError error_type; QString error_str; explicit {{prefix}}HttpRequestWorker(QObject *parent = 0); virtual ~{{prefix}}HttpRequestWorker(); QString http_attribute_encode(QString attribute_name, QString input); void execute({{prefix}}HttpRequestInput *input); static QSslConfiguration* sslDefaultConfiguration; signals: void on_execution_finished({{prefix}}HttpRequestWorker *worker); private: QNetworkAccessManager *manager; private slots: void on_manager_finished(QNetworkReply *reply); }; {{#cppNamespaceDeclarations}} } {{/cppNamespaceDeclarations}} #endif // {{prefix}}_HTTPREQUESTWORKER_H