diff options
author | Lena Biliaieva <lena.biliaieva@qt.io> | 2024-04-03 20:32:32 +0200 |
---|---|---|
committer | Lena Biliaieva <lena.biliaieva@qt.io> | 2024-05-03 21:48:36 +0200 |
commit | 65fef44ddf18c2dbc7357ff056a28a308b1350f2 (patch) | |
tree | 183e961a1aa4f93fe0be11c742cc547da18c9d77 /src | |
parent | bbff35a343f607fde64a71b651db9f35365e3c67 (diff) |
[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 <juha.vuolle@qt.io>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/network/kernel/qnetworkproxy.cpp | 47 | ||||
-rw-r--r-- | src/network/kernel/qnetworkproxy.h | 4 |
2 files changed, 51 insertions, 0 deletions
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 @@ -752,6 +752,53 @@ QNetworkProxy QNetworkProxy::applicationProxy() } /*! + \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 in use for this proxy. If it is not present, returns QVariant() 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); |