Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ void {{prefix}}HttpRequestInput::add_file(QString variable_name, QString local_f
}

{{prefix}}HttpRequestWorker::{{prefix}}HttpRequestWorker(QObject *parent)
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false) {
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false), httpResponseCode(-1) {
qsrand(QDateTime::currentDateTime().toTime_t());
manager = new QNetworkAccessManager(this);
workingDirectory = QDir::currentPath();
Expand Down Expand Up @@ -110,6 +110,10 @@ void {{prefix}}HttpRequestWorker::setRequestCompressionEnabled(bool enable) {
isRequestCompressionEnabled = enable;
}

int {{prefix}}HttpRequestWorker::getHttpResponseCode() const{
return httpResponseCode;
}

QString {{prefix}}HttpRequestWorker::http_attribute_encode(QString attribute_name, QString input) {
// result structure follows RFC 5987
bool need_utf_encoding = false;
Expand Down Expand Up @@ -360,6 +364,7 @@ void {{prefix}}HttpRequestWorker::execute({{prefix}}HttpRequestInput *input) {
}

void {{prefix}}HttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
bool codeSts = false;
if(timeOutTimer.isActive()) {
QObject::disconnect(&timeOutTimer, &QTimer::timeout, nullptr, nullptr);
timeOutTimer.stop();
Expand All @@ -371,6 +376,12 @@ void {{prefix}}HttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
headers.insert(item.first, item.second);
}
}
auto rescode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(&codeSts);
if(codeSts){
httpResponseCode = rescode;
} else{
httpResponseCode = -1;
}
process_response(reply);
reply->deleteLater();
emit on_execution_finished(this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,12 @@ class {{prefix}}HttpRequestWorker : public QObject {
Q_OBJECT

public:
explicit {{prefix}}HttpRequestWorker(QObject *parent = nullptr);
virtual ~{{prefix}}HttpRequestWorker();

QByteArray response;
QNetworkReply::NetworkError error_type;
QString error_str;
explicit {{prefix}}HttpRequestWorker(QObject *parent = nullptr);
virtual ~{{prefix}}HttpRequestWorker();

QMap<QString, QString> getResponseHeaders() const;
QString http_attribute_encode(QString attribute_name, QString input);
Expand All @@ -66,6 +67,8 @@ public:
QByteArray *getMultiPartField(const QString &fieldname = QString());
void setResponseCompressionEnabled(bool enable);
void setRequestCompressionEnabled(bool enable);
int getHttpResponseCode() const;

signals:
void on_execution_finished({{prefix}}HttpRequestWorker *worker);

Expand All @@ -82,10 +85,13 @@ private:
QTimer timeOutTimer;
bool isResponseCompressionEnabled;
bool isRequestCompressionEnabled;
int httpResponseCode;

void on_manager_timeout(QNetworkReply *reply);
void process_response(QNetworkReply *reply);
QByteArray decompress(const QByteArray& data);
QByteArray compress(const QByteArray& input, int level, {{prefix}}CompressionType compressType);
QByteArray compress(const QByteArray& input, int level, {{prefix}}CompressionType compressType);

private slots:
void on_manager_finished(QNetworkReply *reply);
};
Expand Down
13 changes: 12 additions & 1 deletion samples/client/petstore/cpp-qt5/client/PFXHttpRequest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ void PFXHttpRequestInput::add_file(QString variable_name, QString local_filename
}

PFXHttpRequestWorker::PFXHttpRequestWorker(QObject *parent)
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false) {
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false), httpResponseCode(-1) {
qsrand(QDateTime::currentDateTime().toTime_t());
manager = new QNetworkAccessManager(this);
workingDirectory = QDir::currentPath();
Expand Down Expand Up @@ -117,6 +117,10 @@ void PFXHttpRequestWorker::setRequestCompressionEnabled(bool enable) {
isRequestCompressionEnabled = enable;
}

int PFXHttpRequestWorker::getHttpResponseCode() const{
return httpResponseCode;
}

QString PFXHttpRequestWorker::http_attribute_encode(QString attribute_name, QString input) {
// result structure follows RFC 5987
bool need_utf_encoding = false;
Expand Down Expand Up @@ -367,6 +371,7 @@ void PFXHttpRequestWorker::execute(PFXHttpRequestInput *input) {
}

void PFXHttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
bool codeSts = false;
if(timeOutTimer.isActive()) {
QObject::disconnect(&timeOutTimer, &QTimer::timeout, nullptr, nullptr);
timeOutTimer.stop();
Expand All @@ -378,6 +383,12 @@ void PFXHttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
headers.insert(item.first, item.second);
}
}
auto rescode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(&codeSts);
if(codeSts){
httpResponseCode = rescode;
} else{
httpResponseCode = -1;
}
process_response(reply);
reply->deleteLater();
emit on_execution_finished(this);
Expand Down
12 changes: 9 additions & 3 deletions samples/client/petstore/cpp-qt5/client/PFXHttpRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,12 @@ class PFXHttpRequestWorker : public QObject {
Q_OBJECT

public:
explicit PFXHttpRequestWorker(QObject *parent = nullptr);
virtual ~PFXHttpRequestWorker();

QByteArray response;
QNetworkReply::NetworkError error_type;
QString error_str;
explicit PFXHttpRequestWorker(QObject *parent = nullptr);
virtual ~PFXHttpRequestWorker();

QMap<QString, QString> getResponseHeaders() const;
QString http_attribute_encode(QString attribute_name, QString input);
Expand All @@ -74,6 +75,8 @@ class PFXHttpRequestWorker : public QObject {
QByteArray *getMultiPartField(const QString &fieldname = QString());
void setResponseCompressionEnabled(bool enable);
void setRequestCompressionEnabled(bool enable);
int getHttpResponseCode() const;

signals:
void on_execution_finished(PFXHttpRequestWorker *worker);

Expand All @@ -90,10 +93,13 @@ class PFXHttpRequestWorker : public QObject {
QTimer timeOutTimer;
bool isResponseCompressionEnabled;
bool isRequestCompressionEnabled;
int httpResponseCode;

void on_manager_timeout(QNetworkReply *reply);
void process_response(QNetworkReply *reply);
QByteArray decompress(const QByteArray& data);
QByteArray compress(const QByteArray& input, int level, PFXCompressionType compressType);
QByteArray compress(const QByteArray& input, int level, PFXCompressionType compressType);

private slots:
void on_manager_finished(QNetworkReply *reply);
};
Expand Down