Add QHttpHeaders to QNetworkReply

Added headers(), setHeaders() and setWellKnownHeader() methods to
QNetworkRequest that work with QHttpHeaders.

[ChangeLog][QtNetwork][QNetworkRequest] Added headers(), setHeaders()
and setWellKnownHeader() methods to QNetworkRequest to provide
an interface to work with QHttpHeaders.

Task-number: QTBUG-107751
Change-Id: Icfb132a307aed030817c8e01ef908d4fd2faf60c
Reviewed-by: Juha Vuolle <juha.vuolle@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
Lena Biliaieva 2024-04-19 17:14:22 +02:00
parent 85543ed012
commit c6438054b9
2 changed files with 56 additions and 0 deletions

View File

@ -653,6 +653,19 @@ const QList<QNetworkReply::RawHeaderPair>& QNetworkReply::rawHeaderPairs() const
return d->rawHeaders;
}
/*!
\since 6.8
Returns headers that were sent by the remote server.
\sa setHeaders(), QNetworkRequest::setAttribute(), QNetworkRequest::Attribute
*/
QHttpHeaders QNetworkReply::headers() const
{
Q_D(const QNetworkReply);
return d->headers();
}
/*!
Returns a list of headers fields that were sent by the remote
server, in the order that they were sent. Duplicate headers are
@ -887,6 +900,45 @@ void QNetworkReply::setUrl(const QUrl &url)
d->url = url;
}
/*!
\since 6.8
Sets \a newHeaders as headers in this network reply, overriding
any previously set headers.
If some headers correspond to the known headers, they will be
parsed and the corresponding parsed form will also be set.
\sa headers(), QNetworkRequest::KnownHeaders
*/
void QNetworkReply::setHeaders(const QHttpHeaders &newHeaders)
{
Q_D(QNetworkReply);
d->setHeaders(newHeaders);
}
/*!
\overload
\since 6.8
*/
void QNetworkReply::setHeaders(QHttpHeaders &&newHeaders)
{
Q_D(QNetworkReply);
d->setHeaders(std::move(newHeaders));
}
/*!
\since 6.8
Sets the header \a name to be of value \a value. If \a
name was previously set, it is overridden.
*/
void QNetworkReply::setWellKnownHeader(QHttpHeaders::WellKnownHeader name, const QByteArray &value)
{
Q_D(QNetworkReply);
d->setHeader(name, value);
}
/*!
Sets the known header \a header to be of value \a value. The
corresponding raw form of the header will be set as well.

View File

@ -109,6 +109,7 @@ public:
typedef QPair<QByteArray, QByteArray> RawHeaderPair;
const QList<RawHeaderPair>& rawHeaderPairs() const;
QHttpHeaders headers() const;
// attributes
QVariant attribute(QNetworkRequest::Attribute code) const;
@ -152,6 +153,9 @@ protected:
void setUrl(const QUrl &url);
void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value);
void setRawHeader(const QByteArray &headerName, const QByteArray &value);
void setHeaders(const QHttpHeaders &newHeaders);
void setHeaders(QHttpHeaders &&newHeaders);
void setWellKnownHeader(QHttpHeaders::WellKnownHeader name, const QByteArray &value);
void setAttribute(QNetworkRequest::Attribute code, const QVariant &value);
#if QT_CONFIG(ssl)