From 65fef44ddf18c2dbc7357ff056a28a308b1350f2 Mon Sep 17 00:00:00 2001 From: Lena Biliaieva Date: Wed, 3 Apr 2024 20:32:32 +0200 Subject: Add QHttpHeaders methods to QNetworkProxy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ChangeLog][QtNetwork][QNetworkProxy] Added headers() and setHeaders() methods to QNetworkProxy to provide an interface to work with QHttpHeaders. Task-number: QTBUG-107751 Change-Id: I8a82f56f0262c9f44d0cb52b2e411bf75626b926 Reviewed-by: Juha Vuolle Reviewed-by: MÃ¥rten Nordheim --- src/network/kernel/qnetworkproxy.cpp | 47 ++++++++++++++++++++++++++++++++++++ src/network/kernel/qnetworkproxy.h | 4 +++ 2 files changed, 51 insertions(+) (limited to 'src') diff --git a/src/network/kernel/qnetworkproxy.cpp b/src/network/kernel/qnetworkproxy.cpp index 62bba24bce..6875e93581 100644 --- a/src/network/kernel/qnetworkproxy.cpp +++ b/src/network/kernel/qnetworkproxy.cpp @@ -751,6 +751,53 @@ QNetworkProxy QNetworkProxy::applicationProxy() return QNetworkProxy(); } +/*! + \since 6.8 + + Returns headers that are set in this network request. + + If the proxy is not of type HttpProxy or HttpCachingProxy, + default constructed QHttpHeaders is returned. + + \sa setHeaders() +*/ +QHttpHeaders QNetworkProxy::headers() const +{ + if (d->type != HttpProxy && d->type != HttpCachingProxy) + return {}; + return d->headers.headers(); +} + +/*! + \since 6.8 + + Sets \a newHeaders as headers in this network request, overriding + any previously set headers. + + If some headers correspond to the known headers, the values will + be parsed and the corresponding parsed form will also be set. + + If the proxy is not of type HttpProxy or HttpCachingProxy this has no + effect. + + \sa headers(), QNetworkRequest::KnownHeaders +*/ +void QNetworkProxy::setHeaders(QHttpHeaders &&newHeaders) +{ + if (d->type == HttpProxy || d->type == HttpCachingProxy) + d->headers.setHeaders(std::move(newHeaders)); +} + +/*! + \overload + \since 6.8 +*/ +void QNetworkProxy::setHeaders(const QHttpHeaders &newHeaders) +{ + if (d->type == HttpProxy || d->type == HttpCachingProxy) + d->headers.setHeaders(newHeaders); +} + /*! \since 5.0 Returns the value of the known network header \a header if it is diff --git a/src/network/kernel/qnetworkproxy.h b/src/network/kernel/qnetworkproxy.h index d04bd9ee13..9f92ffeb12 100644 --- a/src/network/kernel/qnetworkproxy.h +++ b/src/network/kernel/qnetworkproxy.h @@ -136,6 +136,10 @@ public: static void setApplicationProxy(const QNetworkProxy &proxy); static QNetworkProxy applicationProxy(); + QHttpHeaders headers() const; + void setHeaders(const QHttpHeaders &newHeaders); + void setHeaders(QHttpHeaders &&newHeaders); + // "cooked" headers QVariant header(QNetworkRequest::KnownHeaders header) const; void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value); -- cgit v1.2.3