diff options
Diffstat (limited to 'src/network/access/qhttpnetworkrequest.cpp')
| -rw-r--r-- | src/network/access/qhttpnetworkrequest.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/network/access/qhttpnetworkrequest.cpp b/src/network/access/qhttpnetworkrequest.cpp index 07f36df851c..c9d2b6f7b88 100644 --- a/src/network/access/qhttpnetworkrequest.cpp +++ b/src/network/access/qhttpnetworkrequest.cpp @@ -5,6 +5,8 @@ #include "qhttpnetworkrequest_p.h" #include "private/qnoncontiguousbytedevice_p.h" +#include <QtCore/private/qtools_p.h> + QT_BEGIN_NAMESPACE QT_IMPL_METATYPE_EXTERN(QHttpNetworkRequest) @@ -129,8 +131,19 @@ QByteArray QHttpNetworkRequestPrivate::header(const QHttpNetworkRequest &request ba += QByteArray::number(request.minorVersion()); ba += "\r\n"; + constexpr auto titlecase = [](QByteArrayView name) { + std::string n; + n.reserve(size_t(name.size())); + bool toUpperNext = true; + for (char c : name) { + n += toUpperNext ? QtMiscUtils::toAsciiUpper(c) : c; + toUpperNext = c == '-'; + } + return n; + }; + for (qsizetype i = 0; i < headers.size(); ++i) { - ba += headers.nameAt(i); + ba += titlecase(headers.nameAt(i)); ba += ": "; ba += headers.valueAt(i); ba += "\r\n"; |
