[Qt5][C++] Fixed QByteArray::toUtf8 with FILE as request body. Included <stdexcept>. (#8550)

* Multiple cpp-qt5-client bugfixes.

* Added '#include <stdexcept>' where std::runtime_error is used
* Fixed request with FILE body: QByteArray doesn't have ::toUtf8()
* Updated related samples

* Fixed isByteArray section

* updated docs

* Docs changes reverted
This commit is contained in:
Igor Sirotin 2021-01-30 06:35:52 +03:00 committed by GitHub
parent 5135967c91
commit 328cadb070
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 16 additions and 13 deletions

View File

@ -7,6 +7,7 @@
#include <QString>
#include <QMap>
#include <QRegularExpression>
#include <stdexcept>
#include "{{prefix}}ServerVariable.h"
{{#cppNamespaceDeclarations}}

View File

@ -227,10 +227,10 @@ void {{classname}}::{{nickname}}({{#allParams}}const {{{dataType}}} &{{paramName
QByteArray bytes = doc.toJson();
input.request_body.append(bytes);
{{/isContainer}}{{^isContainer}}{{#isString}}
QString output({{paramName}});{{/isString}}{{#isByteArray}}QString output({{paramName}});{{/isByteArray}}{{^isString}}{{^isByteArray}}{{^isFile}}
QString output = {{paramName}}.asJson();{{/isFile}}{{/isByteArray}}{{/isString}}{{#isFile}}{{#hasConsumes}}input.headers.insert("Content-Type", {{#consumes}}{{^-first}}, {{/-first}}"{{mediaType}}"{{/consumes}});{{/hasConsumes}}
QByteArray output = {{paramName}}.toUtf8();{{/isString}}{{#isByteArray}}QByteArray output({{paramName}});{{/isByteArray}}{{^isString}}{{^isByteArray}}{{^isFile}}
QByteArray output = {{paramName}}.asJson().toUtf8();{{/isFile}}{{/isByteArray}}{{/isString}}{{#isFile}}{{#hasConsumes}}input.headers.insert("Content-Type", {{#consumes}}{{^-first}}, {{/-first}}"{{mediaType}}"{{/consumes}});{{/hasConsumes}}
QByteArray output = {{paramName}}.asByteArray();{{/isFile}}
input.request_body.append(output.toUtf8());
input.request_body.append(output);
{{/isContainer}}{{/bodyParams}}{{#headerParams}}
if (!::{{cppNamespace}}::toStringValue({{paramName}}).isEmpty()) {
input.headers.insert("{{baseName}}", ::{{cppNamespace}}::toStringValue({{paramName}}));

View File

@ -5,6 +5,7 @@
#include <string>
#include <sstream>
#include <stdexcept>
{{#hasEnums}}
#include <algorithm>
{{/hasEnums}}

View File

@ -154,8 +154,8 @@ void PFXPetApi::addPet(const PFXPet &body) {
worker->setWorkingDirectory(_workingDirectory);
PFXHttpRequestInput input(fullPath, "POST");
QString output = body.asJson();
input.request_body.append(output.toUtf8());
QByteArray output = body.asJson().toUtf8();
input.request_body.append(output);
foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); }
@ -458,8 +458,8 @@ void PFXPetApi::updatePet(const PFXPet &body) {
worker->setWorkingDirectory(_workingDirectory);
PFXHttpRequestInput input(fullPath, "PUT");
QString output = body.asJson();
input.request_body.append(output.toUtf8());
QByteArray output = body.asJson().toUtf8();
input.request_body.append(output);
foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); }

View File

@ -17,6 +17,7 @@
#include <QString>
#include <QMap>
#include <QRegularExpression>
#include <stdexcept>
#include "PFXServerVariable.h"
namespace test_namespace {

View File

@ -277,8 +277,8 @@ void PFXStoreApi::placeOrder(const PFXOrder &body) {
worker->setWorkingDirectory(_workingDirectory);
PFXHttpRequestInput input(fullPath, "POST");
QString output = body.asJson();
input.request_body.append(output.toUtf8());
QByteArray output = body.asJson().toUtf8();
input.request_body.append(output);
foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); }

View File

@ -154,8 +154,8 @@ void PFXUserApi::createUser(const PFXUser &body) {
worker->setWorkingDirectory(_workingDirectory);
PFXHttpRequestInput input(fullPath, "POST");
QString output = body.asJson();
input.request_body.append(output.toUtf8());
QByteArray output = body.asJson().toUtf8();
input.request_body.append(output);
foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); }
@ -455,8 +455,8 @@ void PFXUserApi::updateUser(const QString &username, const PFXUser &body) {
worker->setWorkingDirectory(_workingDirectory);
PFXHttpRequestInput input(fullPath, "PUT");
QString output = body.asJson();
input.request_body.append(output.toUtf8());
QByteArray output = body.asJson().toUtf8();
input.request_body.append(output);
foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); }