diff --git a/src/network/access/qhttpheaders.cpp b/src/network/access/qhttpheaders.cpp index 7a4778f18af..fb4594663f3 100644 --- a/src/network/access/qhttpheaders.cpp +++ b/src/network/access/qhttpheaders.cpp @@ -1041,6 +1041,14 @@ void QHttpHeaders::reserve(qsizetype size) d->headers.reserve(size); } +/*! + Returns a header name corresponding to the provided \a name as a view. +*/ +QByteArrayView QHttpHeaders::wellKnownHeaderName(WellKnownHeader name) noexcept +{ + return headerNames[qToUnderlying(name)]; +} + /*! Returns the header entries as a list of (name, value) pairs. Header names are case-insensitive, and the returned names are lower-cased. diff --git a/src/network/access/qhttpheaders.h b/src/network/access/qhttpheaders.h index 22a8b400fb9..661b9da0f4d 100644 --- a/src/network/access/qhttpheaders.h +++ b/src/network/access/qhttpheaders.h @@ -242,6 +242,8 @@ public: Q_NETWORK_EXPORT void reserve(qsizetype size); bool isEmpty() const noexcept { return size() == 0; } + Q_NETWORK_EXPORT static QByteArrayView wellKnownHeaderName(WellKnownHeader name) noexcept; + Q_NETWORK_EXPORT static QHttpHeaders fromListOfPairs(const QList> &headers); Q_NETWORK_EXPORT static QHttpHeaders diff --git a/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp b/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp index 3ce38aab975..66e31d688b7 100644 --- a/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp +++ b/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp @@ -16,6 +16,7 @@ class tst_QHttpHeaders : public QObject private slots: void constructors(); void accessors(); + void wellKnownHeader(); void headerNameField(); void headerValueField(); void valueEncoding(); @@ -303,6 +304,12 @@ void tst_QHttpHeaders::accessors() } +void tst_QHttpHeaders::wellKnownHeader() +{ + QByteArrayView view = QHttpHeaders::wellKnownHeaderName(QHttpHeaders::WellKnownHeader::AIM); + QCOMPARE(view, "a-im"); +} + #define TEST_ILLEGAL_HEADER_NAME_CHARACTER(NAME) \ QTest::ignoreMessage(QtMsgType::QtWarningMsg, re); \ QVERIFY(!h1.append(NAME, v1)); \