QHttpHeaders: Add setters for QDateTime
Added setDateTimeValue() convenience methods to QHttpHeaders, allowing direct setting of headers with QDateTime values. [ChangeLog][QtNetwork][QHttpHeaders] Added setDateTimeValue() methods for setting headers using QDateTime. Task-number: QTBUG-124766 Change-Id: I5804fa8946feaed1dfb4b37ec97a1a4461521995 Reviewed-by: Juha Vuolle <juha.vuolle@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
c0a01ca6ad
commit
bf5fcd6ebe
@ -1545,6 +1545,34 @@ std::optional<QDateTime> QHttpHeaders::dateTimeValue(WellKnownHeader name) const
|
||||
return dateTimeValue(wellKnownHeaderName(name));
|
||||
}
|
||||
|
||||
/*!
|
||||
\since 6.10
|
||||
|
||||
Sets the value of the header name \a name to \a dateTime,
|
||||
following the
|
||||
\l {https://datatracker.ietf.org/doc/html/rfc9110#name-date-time-formats}{standard HTTP IMF-fixdate format}.
|
||||
If the header does not exist, adds a new one.
|
||||
|
||||
\sa dateTimeValue(QAnyStringView name), dateTimeValueAt(qsizetype i)
|
||||
*/
|
||||
void QHttpHeaders::setDateTimeValue(QAnyStringView name, const QDateTime &dateTime)
|
||||
{
|
||||
if (!dateTime.isValid()) {
|
||||
qWarning("QHttpHeaders::setDateTimeValue: invalid QDateTime value received");
|
||||
return;
|
||||
}
|
||||
replaceOrAppend(name, QNetworkHeadersPrivate::toHttpDate(dateTime));
|
||||
}
|
||||
|
||||
/*!
|
||||
\since 6.10
|
||||
\overload setDateTimeValue(QAnyStringView)
|
||||
*/
|
||||
void QHttpHeaders::setDateTimeValue(WellKnownHeader name, const QDateTime &dateTime)
|
||||
{
|
||||
setDateTimeValue(wellKnownHeaderName(name), dateTime);
|
||||
}
|
||||
|
||||
/*!
|
||||
\since 6.10
|
||||
|
||||
|
@ -262,6 +262,9 @@ public:
|
||||
|
||||
Q_NETWORK_EXPORT std::optional<QDateTime> dateTimeValueAt(qsizetype i) const;
|
||||
|
||||
Q_NETWORK_EXPORT void setDateTimeValue(QAnyStringView name, const QDateTime &dateTime);
|
||||
Q_NETWORK_EXPORT void setDateTimeValue(WellKnownHeader name, const QDateTime &dateTime);
|
||||
|
||||
Q_NETWORK_EXPORT qsizetype size() const noexcept;
|
||||
Q_NETWORK_EXPORT void reserve(qsizetype size);
|
||||
bool isEmpty() const noexcept { return size() == 0; }
|
||||
|
@ -623,6 +623,14 @@ void tst_QHttpHeaders::dateTimeValues()
|
||||
QCOMPARE(dateTimeValueAtIndex->date(), QDate(2025, 2, 24));
|
||||
QCOMPARE(dateTimeValueAtIndex->time(), QTime(11, 11, 11, 0));
|
||||
|
||||
QDateTime dateTimeValue3{QDate{2049, 4, 3}, QTime{12, 30, 00, 0}};
|
||||
dateTimeValue3.setTimeZone(QTimeZone::UTC);
|
||||
h1.setDateTimeValue("date", dateTimeValue3);
|
||||
std::optional<QDateTime> setDateTimeValue = h1.dateTimeValue("date");
|
||||
QVERIFY(setDateTimeValue);
|
||||
QCOMPARE(setDateTimeValue->date(), QDate(2049, 4, 3));
|
||||
QCOMPARE(setDateTimeValue->time(), QTime(12, 30, 00, 0));
|
||||
|
||||
h1.clear();
|
||||
h1.append("Date", "InvalidDateFormat");
|
||||
h1.append("Date", "");
|
||||
|
Loading…
x
Reference in New Issue
Block a user