本页内容

QHstsPolicy Class

QHstsPolicy 类用于指定主机是否支持 HTTP 严格传输安全策略 (HSTS)。更多内容...

头文件: #include <QHstsPolicy>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

公共类型

enum PolicyFlag { IncludeSubDomains }
flags PolicyFlags

公共函数

QHstsPolicy()
QHstsPolicy(const QDateTime &expiry, QHstsPolicy::PolicyFlags flags, const QString &host, QUrl::ParsingMode mode = QUrl::DecodedMode)
QHstsPolicy(const QHstsPolicy &other)
~QHstsPolicy()
QDateTime expiry() const
QString host(QUrl::ComponentFormattingOptions options = QUrl::FullyDecoded) const
bool includesSubDomains() const
bool isExpired() const
void setExpiry(const QDateTime &expiry)
void setHost(const QString &host, QUrl::ParsingMode mode = QUrl::DecodedMode)
void setIncludesSubDomains(bool include)
void swap(QHstsPolicy &other)
QHstsPolicy &operator=(const QHstsPolicy &other)
bool operator!=(const QHstsPolicy &lhs, const QHstsPolicy &rhs)
bool operator==(const QHstsPolicy &lhs, const QHstsPolicy &rhs)

详细说明

HSTS 策略定义了一段时间,在此期间,QNetworkAccessManager 应仅以安全的方式访问主机。HSTS 策略由 RFC6797 定义。

您可以在构造函数中,或通过调用setExpiry()、setHost() 和setIncludesSubDomains() 来设置该策略的过期时间和主机名,并控制其是否适用于子域名。

另请参阅 QNetworkAccessManager::setStrictTransportSecurityEnabled()。

成员类型文档

enum QHstsPolicy::PolicyFlag
flags QHstsPolicy::PolicyFlags

常数值描述
QHstsPolicy::IncludeSubDomains1指示策略是否必须包含子域名

PolicyFlags 类型是QFlags<PolicyFlag> 的 typedef 定义。它存储 PolicyFlag 值的按“或”运算组合。

成员函数文档

QHstsPolicy::QHstsPolicy()

创建一个无效(已过期)的策略,其中主机名为空,且未包含子域名。

QHstsPolicy::QHstsPolicy(const QDateTime &expiry, QHstsPolicy::PolicyFlags flags, const QString &host, QUrl::ParsingMode mode = QUrl::DecodedMode)

使用expiry (以UTC为基准)构建QHstsPolicy;flags 是一个值,用于指示该策略是否还必须包含子域名;host 的数据将根据mode 进行解析。

另请参阅 QUrl::setHost()、QUrl::ParsingMode 以及QHstsPolicy::PolicyFlag 。

QHstsPolicy::QHstsPolicy(const QHstsPolicy &other)

创建other 对象的副本。

[noexcept] QHstsPolicy::~QHstsPolicy()

析构函数。

QDateTime QHstsPolicy::expiry() const

返回该策略的到期日期(以 UTC 格式表示)。

另请参阅 setExpiry()。

QString QHstsPolicy::host(QUrl::ComponentFormattingOptions options = QUrl::FullyDecoded) const

返回给定策略对应的主机,格式遵循options 。

另请参阅 setHost()、QUrl::host() 以及QUrl::ComponentFormattingOptions 。

bool QHstsPolicy::includesSubDomains() const

如果该策略还包含子域名,则返回 `true `。

另请参阅 setIncludesSubDomains()。

bool QHstsPolicy::isExpired() const

如果该策略具有有效的到期日期,且该日期晚于 QDateTime::currentGetDateTimeUtc(),则返回true 。

另请参阅 setExpiry() 和expiry()。

void QHstsPolicy::setExpiry(const QDateTime &expiry)

将策略的到期日期(以UTC为单位)设置为expiry 。

另请参阅 expiry()。

void QHstsPolicy::setHost(const QString &host, QUrl::ParsingMode mode = QUrl::DecodedMode)

设置主机,host 数据将根据mode 参数进行解析。

另请参阅 host()、QUrl::setHost() 和QUrl::ParsingMode 。

void QHstsPolicy::setIncludesSubDomains(bool include)

将此策略是否包含子域的设置设为include 。

另请参阅 includesSubDomains()。

[noexcept] void QHstsPolicy::swap(QHstsPolicy &other)

将此策略与other 互换。此操作非常快速,且绝不会失败。

QHstsPolicy &QHstsPolicy::operator=(const QHstsPolicy &other)

复制赋值运算符,会生成other 的副本。

相关的非成员项

bool operator!=(const QHstsPolicy &lhs, const QHstsPolicy &rhs)

如果两个策略lhs 和rhs 的主机名或到期日期不一致,或者在是否包含子域名的问题上存在分歧,则返回true 。

bool operator==(const QHstsPolicy &lhs, const QHstsPolicy &rhs)

如果两个策略lhs 和rhs 具有相同的主机名和到期日期,并且在是否包含子域名这一点上达成一致,则返回true 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.