diff --git a/src/network/access/qhttpheaders.cpp b/src/network/access/qhttpheaders.cpp index fb4594663f3..c6d76dee7e2 100644 --- a/src/network/access/qhttpheaders.cpp +++ b/src/network/access/qhttpheaders.cpp @@ -987,6 +987,18 @@ QList QHttpHeaders::values(WellKnownHeader name) const return values(headerNames[qToUnderlying(name)]); } +/*! + Returns the header value at index \a i. The index \a i must be valid + (see \l size()). + + \sa size(), value(), values(), combinedValue() +*/ +QByteArrayView QHttpHeaders::valueAt(qsizetype i) const noexcept +{ + d->verify(i); + return d->headers.at(i).value; +} + /*! Returns the values of header \a name in a comma-combined string. Returns a \c null QByteArray if the header with \a name doesn't diff --git a/src/network/access/qhttpheaders.h b/src/network/access/qhttpheaders.h index 661b9da0f4d..bb975b00ddd 100644 --- a/src/network/access/qhttpheaders.h +++ b/src/network/access/qhttpheaders.h @@ -235,6 +235,8 @@ public: Q_NETWORK_EXPORT QList values(QAnyStringView name) const; Q_NETWORK_EXPORT QList values(WellKnownHeader name) const; + Q_NETWORK_EXPORT QByteArrayView valueAt(qsizetype i) const noexcept; + Q_NETWORK_EXPORT QByteArray combinedValue(QAnyStringView name) const; Q_NETWORK_EXPORT QByteArray combinedValue(WellKnownHeader name) const; diff --git a/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp b/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp index 7a7e1da0a4b..77f265c9e9d 100644 --- a/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp +++ b/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp @@ -186,6 +186,15 @@ void tst_QHttpHeaders::accessors() QCOMPARE(h1.size(), 5); QCOMPARE(h1.names().size(), 2); + // valueAt() + h1.clear(); + h1.append(n1, v1); + h1.append(n2, v2); + h1.append(n3, v3); + QCOMPARE(h1.valueAt(0), v1); + QCOMPARE(h1.valueAt(1), v2); + QCOMPARE(h1.valueAt(2), v3); + // removeAll() h1.clear(); QVERIFY(h1.append(n1, v1));