summaryrefslogtreecommitdiffstats
path: root/src/network/access/qhttpnetworkrequest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/access/qhttpnetworkrequest.cpp')
-rw-r--r--src/network/access/qhttpnetworkrequest.cpp15
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";