QNetworkRequest Class

QNetworkRequest 类保存要通过QNetworkAccessManager 发送的请求。更多

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

公共类型

enum Attribute { HttpStatusCodeAttribute, HttpReasonPhraseAttribute, RedirectionTargetAttribute, ConnectionEncryptedAttribute, CacheLoadControlAttribute, …, UserMax }
enum CacheLoadControl { AlwaysNetwork, PreferNetwork, PreferCache, AlwaysCache }
enum KnownHeaders { ContentDispositionHeader, ContentTypeHeader, ContentLengthHeader, LocationHeader, LastModifiedHeader, …, ServerHeader }
enum LoadControl { Automatic, Manual }
enum Priority { HighPriority, NormalPriority, LowPriority }
enum RedirectPolicy { ManualRedirectPolicy, NoLessSafeRedirectPolicy, SameOriginRedirectPolicy, UserVerifiedRedirectPolicy }
enum TransferTimeoutConstant { DefaultTransferTimeoutConstant }

公共函数

QNetworkRequest()
QNetworkRequest(const QUrl &url)
QNetworkRequest(const QNetworkRequest &other)
~QNetworkRequest()
QVariant attribute(QNetworkRequest::Attribute code, const QVariant &defaultValue = QVariant()) const
(since 6.2) qint64 decompressedSafetyCheckThreshold() const
bool hasRawHeader(QAnyStringView headerName) const
QVariant header(QNetworkRequest::KnownHeaders header) const
(since 6.8) QHttpHeaders headers() const
(since 6.5) QHttp1Configuration http1Configuration() const
QHttp2Configuration http2Configuration() const
int maximumRedirectsAllowed() const
QObject *originatingObject() const
QString peerVerifyName() const
QNetworkRequest::Priority priority() const
QByteArray rawHeader(QAnyStringView headerName) const
QList<QByteArray> rawHeaderList() const
void setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
(since 6.2) void setDecompressedSafetyCheckThreshold(qint64 threshold)
void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
(since 6.8) void setHeaders(QHttpHeaders &&newHeaders)
(since 6.8) void setHeaders(const QHttpHeaders &newHeaders)
(since 6.5) void setHttp1Configuration(const QHttp1Configuration &configuration)
void setHttp2Configuration(const QHttp2Configuration &configuration)
void setMaximumRedirectsAllowed(int maxRedirectsAllowed)
void setOriginatingObject(QObject *object)
void setPeerVerifyName(const QString &peerName)
void setPriority(QNetworkRequest::Priority priority)
void setRawHeader(const QByteArray &headerName, const QByteArray &headerValue)
void setSslConfiguration(const QSslConfiguration &config)
void setTransferTimeout(int timeout)
(since 6.7) void setTransferTimeout(std::chrono::milliseconds duration = DefaultTransferTimeout)
void setUrl(const QUrl &url)
QSslConfiguration sslConfiguration() const
void swap(QNetworkRequest &other)
int transferTimeout() const
(since 6.7) std::chrono::milliseconds transferTimeoutAsDuration() const
QUrl url() const
bool operator!=(const QNetworkRequest &other) const
QNetworkRequest &operator=(const QNetworkRequest &other)
bool operator==(const QNetworkRequest &other) const

静态公共成员

const std::chrono::std::chrono::milliseconds DefaultTransferTimeout

详细说明

QNetworkRequest 是网络访问 API 的一部分,该类包含通过网络发送请求所需的信息。它包含一个 URL 和一些可用于修改请求的辅助信息。

另请参阅 QNetworkReplyQNetworkAccessManager

成员类型文档

enum QNetworkRequest::Attribute

QNetworkRequestQNetworkReply 的属性代码。

属性是额外的元数据,用于控制请求的行为,并将回复中的进一步信息传递回应用程序。属性还具有可扩展性,允许自定义实现传递自定义值。

下表解释了默认属性代码、相关的QVariant 类型、缺失属性时的默认值以及在请求或回复中使用的属性。

常量说明
QNetworkRequest::HttpStatusCodeAttribute0仅回复,类型:QMetaType::Int (无默认值) 表示从 HTTP 服务器接收到的 HTTP 状态代码(如 200、304、404、401 等)。如果连接不是基于 HTTP 的,则不存在此属性。
QNetworkRequest::HttpReasonPhraseAttribute1仅回复,类型:QMetaType::QByteArray (无默认值) 表示从 HTTP 服务器接收到的 HTTP 原因短语(如 "OK"、"Found"、"Not Found"、"Access Denied "等),这是状态代码的人可读表示(见上文)。如果连接不是基于 HTTP 的,则不存在此属性。注意:使用 HTTP/2 时不使用原因短语。
QNetworkRequest::RedirectionTargetAttribute2仅回复,类型:QMetaType::QUrl (无默认值) 如果存在,则表示服务器将请求重定向到不同的 URL。除非使用QNetworkRequest::ManualRedirectPolicy ,否则网络访问 API 默认会遵循重定向。此外,如果使用了QNetworkRequest::UserVerifiedRedirectPolicy ,那么如果未遵循重定向,则将设置此属性。返回的 URL 可能是相对的。请使用QUrl::resolved() 创建绝对 URL。
QNetworkRequest::ConnectionEncryptedAttribute3仅回复,类型:QMetaType::Bool (默认值:false) 表示数据是否通过加密(安全)连接获取。
QNetworkRequest::CacheLoadControlAttribute4仅请求,类型:QMetaType::Int (默认值:QNetworkRequest::PreferNetwork ) 控制访问缓存的方式。可能的值是QNetworkRequest::CacheLoadControl 的值。请注意,默认的QNetworkAccessManager 实现不支持缓存。不过,某些后端可能会使用该属性来修改其请求(例如,缓存代理)。
QNetworkRequest::CacheSaveControlAttribute5Requests only(仅请求),类型:QMetaType::Bool (默认值:true) 控制是否将获取的数据保存到缓存中,以备将来使用。如果值为 false,则不会自动缓存获取的数据。如果值为 true,数据可以被缓存,前提是它是可缓存的(什么是可缓存的取决于所使用的协议)。
QNetworkRequest::SourceIsFromCacheAttribute6仅回复,类型:QMetaType::Bool (默认值:false) 表示数据是否从缓存中获取。
QNetworkRequest::DoNotBufferUploadDataAttribute7仅请求,类型:QMetaType::Bool (默认:false) 表示QNetworkAccessManager 代码是否允许缓冲上传数据,例如在执行 HTTP POST 时。在使用此标志上传连续数据时,必须设置ContentLengthHeader 标头。
QNetworkRequest::HttpPipeliningAllowedAttribute8仅请求,类型:QMetaType::Bool (默认:false) 表示QNetworkAccessManager 代码是否允许在此请求中使用 HTTP 管道。
QNetworkRequest::HttpPipeliningWasUsedAttribute9仅回复,类型 QMetaType::Bool 表示接收此回复时是否使用了 HTTP 管道连接。
QNetworkRequest::CustomVerbAttribute10仅请求,类型 QMetaType::QByteArray 保存自定义 HTTP 发送动词的值(用于 GET、POST、PUT 和 DELETE 以外的其他动词)。该动词在调用QNetworkAccessManager::sendCustomRequest() 时设置。
QNetworkRequest::CookieLoadControlAttribute11仅请求,类型:QMetaType::Int (默认:QNetworkRequest::Automatic ) 表示是否在请求中发送 "Cookie "头。当创建跨源 XMLHttpRequest 时,如果创建请求的 Javascript 没有将 withCredentials 显式设置为 true,Qt WebKit 会将此属性设置为 false。更多信息,请参见此处。(此值在 4.7 中引入)。
QNetworkRequest::CookieSaveControlAttribute13仅限请求,类型:QMetaType::Int (默认:QNetworkRequest::Automatic ) 表示是否保存从服务器收到的回复请求的 "Cookie "头信息。当创建跨源 XMLHttpRequest 时,如果创建请求的 Javascript 未将 withCredentials 显式设置为 true,Qt WebKit 会将此属性设置为 false。更多信息,请参见此处。(此值在 4.7 中引入)。
QNetworkRequest::AuthenticationReuseAttribute12仅请求,类型:QMetaType::Int (默认:QNetworkRequest::Automatic ) 表示是否在请求中使用缓存的授权凭据(如果有的话)。如果该属性设置为QNetworkRequest::Manual ,且身份验证机制为 "Basic "或 "Digest",则 Qt 将不会发送包含其可能拥有的请求 URL 的缓存凭据的 "Authorization "HTTP 头信息。当创建跨源 XMLHttpRequest 时,如果创建请求的 Javascript 没有将 withCredentials 显式设置为 true,Qt WebKit 会将此属性设置为QNetworkRequest::Manual 。更多信息,请参见此处。(此值在 4.7 中引入)。
QNetworkRequest::BackgroundRequestAttribute17类型:QMetaType::Bool (默认值:false) 表示这是一次后台传输,而不是用户发起的传输。根据平台的不同,后台传输可能受制于不同的政策。
QNetworkRequest::Http2AllowedAttribute19仅限请求,类型:QMetaType::Bool (默认值:true) 表示QNetworkAccessManager 代码是否允许在此请求中使用 HTTP/2。这适用于 SSL 请求或 "明文 "HTTP/2(如果设置了 Http2CleartextAllowedAttribute)。
QNetworkRequest::Http2WasUsedAttribute20仅回复,类型:QMetaType::Bool (默认值:false) 表示接收此回复时是否使用了 HTTP/2。(此值在 5.9 中引入)。
QNetworkRequest::EmitAllUploadProgressSignalsAttribute18仅请求,类型:QMetaType::Bool (默认:false) 表示是否应发出所有上传信号。默认情况下,uploadProgress 信号仅以 100 毫秒的间隔发出。(此值在 5.5 中引入)。
QNetworkRequest::OriginalContentLengthAttribute21仅有回复,类型QMetaType::Int 在数据被压缩且请求被标记为自动解压缩时,保留失效前的原始 content-length 属性并从报头中移除。(此值在 5.9 中引入)。
QNetworkRequest::RedirectPolicyAttribute22仅限请求,类型:QMetaType::Int, 应为QNetworkRequest::RedirectPolicy 值之一(默认值:NoLessSafeRedirectPolicy )。(此值在 5.9 中引入)。
QNetworkRequest::Http2DirectAttribute23Requests only, type:QMetaType::Bool (默认值:false) 如果设置,该属性将强制QNetworkAccessManager 使用 HTTP/2 协议,而无需进行 HTTP/2 协议初始协商。使用该属性意味着事先知道特定服务器支持 HTTP/2。该属性适用于 SSL 或 "明文 "HTTP/2(如果设置了 Http2CleartextAllowedAttribute)。如果指定了 HTTP/2 direct,但服务器不支持 HTTP/2,QNetworkAccessManager 就会放弃,而不会尝试返回 HTTP/1.1。如果同时设置了 Http2AllowedAttribute 和 Http2DirectAttribute,则 Http2DirectAttribute 优先。(此值在 5.11 中引入)。
QNetworkRequest::AutoDeleteReplyOnFinishAttribute25仅请求,类型:QMetaType::Bool (默认值:false) 如果设置了该属性,则QNetworkAccessManager 会在发出 "完成 "后删除QNetworkReply 。(此值在 5.14 中引入)。
QNetworkRequest::ConnectionCacheExpiryTimeoutSecondsAttribute26仅用于请求,类型 QMetaType::Int 用于设置服务器(HTTP1 和 HTTP2)的 TCP 连接在处理完最后一个待处理请求后何时关闭。(此值在 6.3 中引入)。
QNetworkRequest::Http2CleartextAllowedAttribute27Requests only(仅请求),类型:QMetaType::Bool (默认值:false)如果设置了该属性,就会告诉QNetworkAccessManager 尝试升级到 HTTP/2 over cleartext(也称为 h2c)。在 Qt 7 之前,该属性的默认值可通过设置 QT_NETWORK_H2C_ALLOWED 环境变量覆盖为 true。如果未设置 Http2AllowedAttribute,该属性将被忽略。(该值在 6.3 中引入)。
QNetworkRequest::UseCredentialsAttribute28仅请求,类型:QMetaType::Bool (默认值:false) 表示是否应使用凭据发出底层 XMLHttpRequest 跨站点访问控制请求。对同源请求没有影响。这仅影响 WebAssembly 平台。(此值在 6.5 中引入)。
QNetworkRequest::FullLocalServerNameAttribute29仅限请求,类型:QMetaType::String 持有用于底层QLocalSocket 的本地服务器全名。当QLocalSocket 的行为无法满足简单名称的要求时,QNetworkAccessManager 会使用该属性连接到特定的本地服务器。QNetworkRequest 中的 URL 仍必须使用 unix+http: 或 local+http: 方案。URL 中的主机名将用于 HTTP 请求中的 Host 标头。(该值在 6.8 中引入)。
QNetworkRequest::User1000特殊类型。附加信息可在 QVariants 中传递,类型从 User 到 UserMax 不等。Network Access 的默认实现将忽略此范围内的任何请求属性,也不会在回复中生成此范围内的任何属性。该范围是为QNetworkAccessManager 的扩展保留的。
QNetworkRequest::UserMax32767特殊类型。请参阅用户。

enum QNetworkRequest::CacheLoadControl

控制QNetworkAccessManager 的缓存机制。

常数说明
QNetworkRequest::AlwaysNetwork0始终从网络加载,不检查缓存是否有有效条目(类似于浏览器中的 "重新加载 "功能);此外,强制中间缓存重新验证。
QNetworkRequest::PreferNetwork1默认值;如果缓存条目比网络条目早,则从网络加载。这样就不会从缓存中返回过时的数据,但会重新验证已经过时的资源。
QNetworkRequest::PreferCache2如果可用,则从缓存载入,否则从网络载入。请注意,这可能会从缓存中返回过期(但非过期)的项目。
QNetworkRequest::AlwaysCache3仅从缓存加载,如果项目未被缓存(即离线模式),则显示错误

enum QNetworkRequest::KnownHeaders

QNetworkRequest 可解析的已知标头类型列表。每个已知标头还以原始形式表示,并附有 HTTP 全名。

常量描述
QNetworkRequest::ContentDispositionHeader6对应于 HTTP 内容处置头,包含一个处置类型(如附件)和一个参数(如文件名)的字符串。
QNetworkRequest::ContentTypeHeader0对应于 HTTP Content-Type 标头,包含一个包含媒体(MIME)类型和任何辅助数据(如字符集)的字符串。
QNetworkRequest::ContentLengthHeader1对应于 HTTP Content-Length 标头,包含以字节为单位的传输数据长度。
QNetworkRequest::LocationHeader2与 HTTP Location(位置)标头相对应,包含代表数据实际位置的 URL,包括重定向情况下的目标 URL。
QNetworkRequest::LastModifiedHeader3对应于 HTTP Last-Modified 标头,包含一个代表内容最后修改日期的QDateTime
QNetworkRequest::IfModifiedSinceHeader9对应于 HTTP If-Modified-Since 标头,包含一个QDateTime 。它通常被添加到QNetworkRequest 中。如果资源自此之后没有更改,服务器应发送 304(未修改)响应。
QNetworkRequest::ETagHeader10对应于 HTTP ETag 标头,包含一个代表内容最后修改状态的QString
QNetworkRequest::IfMatchHeader11对应于 HTTP If-Match 标头,包含一个QStringList 。它通常被添加到QNetworkRequest 。如果资源不匹配,服务器将发送 412(前提条件失败)响应。
QNetworkRequest::IfNoneMatchHeader12对应于 HTTP If-None-Match 标头,包含一个QStringList 。它通常被添加到QNetworkRequest 。如果资源确实匹配,服务器将发送 304(未修改)响应。
QNetworkRequest::CookieHeader4对应于 HTTP Cookie 标头,包含一个QList<QNetworkCookie>,代表要发送回服务器的 cookies。
QNetworkRequest::SetCookieHeader5与 HTTP Set-Cookie 标头相对应,包含一个QList<QNetworkCookie>,代表服务器发送的 Cookie 将存储在本地。
QNetworkRequest::UserAgentHeader7HTTP 客户端发送的 User-Agent 标头。
QNetworkRequest::ServerHeader8HTTP 客户端接收的服务器标头。

另请参阅 header()、setHeader()、rawHeader() 和setRawHeader() 。

enum QNetworkRequest::LoadControl

表示请求加载机制的某个方面是否已被 Qt WebKit 等手动重载。

常量说明
QNetworkRequest::Automatic0默认值:表示默认行为。
QNetworkRequest::Manual1表示行为已被手动重载。

enum QNetworkRequest::Priority

该枚举列出了可能的网络请求优先级。

常数描述
QNetworkRequest::HighPriority1高优先级
QNetworkRequest::NormalPriority3正常优先级
QNetworkRequest::LowPriority5低优先级

enum QNetworkRequest::RedirectPolicy

表示网络访问 API 是否应自动跟踪 HTTP 重定向响应。

常数说明
QNetworkRequest::ManualRedirectPolicy0不跟踪任何重定向。
QNetworkRequest::NoLessSafeRedirectPolicy1默认值:只允许 "http"->"http"、"http"->"https "或 "https"->"https "重定向。
QNetworkRequest::SameOriginRedirectPolicy2要求使用相同的协议、主机和端口。注意,http://example.com 和 http://example.com:80 将无法使用此策略(隐式/显式端口被视为不匹配)。
QNetworkRequest::UserVerifiedRedirectPolicy3客户端通过处理重定向()信号、在QNetworkReply 对象上发出 redirectAllowed() 以允许重定向或中止/完成重定向以拒绝重定向,来决定是否跟踪每次重定向。例如,这可用于询问用户是否接受重定向,或根据某些特定应用程序的配置来决定是否接受重定向。

注意: 当 Qt 处理重定向时,出于传统和兼容性的原因,它会在服务器返回 301 或 302 响应时使用 GET 发出重定向请求,而不管原来使用的是什么方法,除非是 HEAD。

enum QNetworkRequest::TransferTimeoutConstant

常数,可用于启用预设值的传输超时。

常数说明
QNetworkRequest::DefaultTransferTimeoutConstant30000传输超时(毫秒)。在调用 setTimeout() 时使用,不带参数。

另请参阅 QNetworkRequest::DefaultTransferTimeout

成员函数文档

QNetworkRequest::QNetworkRequest()

构造一个没有 URL 请求的 QNetworkRequest 对象。请使用setUrl() 设置 URL。

另请参阅 url() 和setUrl()。

[explicit] QNetworkRequest::QNetworkRequest(const QUrl &url)

构造一个 QNetworkRequest 对象,其中url 为要请求的 URL。

另请参阅 url() 和setUrl()。

QNetworkRequest::QNetworkRequest(const QNetworkRequest &other)

创建other 的副本。

[noexcept] QNetworkRequest::~QNetworkRequest()

处理QNetworkRequest 对象。

QVariant QNetworkRequest::attribute(QNetworkRequest::Attribute code, const QVariant &defaultValue = QVariant()) const

返回与代码code 相关的属性。如果属性尚未设置,则返回defaultValue

注意: 此函数不应用QNetworkRequest::Attribute 中列出的默认值。

另请参阅 setAttribute() 和QNetworkRequest::Attribute

[since 6.2] qint64 QNetworkRequest::decompressedSafetyCheckThreshold() const

返回存档炸弹检查的阈值。

如果回复的解压缩大小小于此值,Qt 将直接解压缩,而不会进一步检查。

此函数在 Qt 6.2 中引入。

另请参阅 setDecompressedSafetyCheckThreshold()。

bool QNetworkRequest::hasRawHeader(QAnyStringView headerName) const

如果该网络请求中存在原始标头headerName ,则返回true

注: 在 6.7 之前的 Qt XML 版本中,此函数仅使用QByteArray

另请参阅 rawHeader() 和setRawHeader()。

如果该请求中存在已知网络报头header ,则返回该网络报头的值。如果不存在,则返回 QVariant()(即无效变量)。

另请参阅 KnownHeaders,rawHeader() 和setHeader()。

[since 6.8] QHttpHeaders QNetworkRequest::headers() const

返回在此网络请求中设置的标头。

此函数在 Qt 6.8 中引入。

另请参阅 setHeaders()。

[since 6.5] QHttp1Configuration QNetworkRequest::http1Configuration() const

返回QNetworkAccessManager 当前用于此请求的 HTTP/1 底层连接的参数。

此函数在 Qt 6.5 中引入。

另请参阅 setHttp1Configuration

QHttp2Configuration QNetworkRequest::http2Configuration() const

返回QNetworkAccessManager 当前用于此请求及其底层 HTTP/2 连接的参数。这是应用程序先前设置的配置或默认配置。

QNetworkAccessManager 正在使用的默认值是

  • 连接级流量控制的窗口大小为 2147483647 八字节
  • 流级流量控制的窗口大小为 214748364 八位字节
  • 最大帧大小为 16384

默认情况下,服务器推送已禁用,哈夫曼压缩和字符串索引已启用。

另请参阅 setHttp2Configuration

int QNetworkRequest::maximumRedirectsAllowed() const

返回此请求允许遵循的最大重定向次数。

另请参阅 setMaximumRedirectsAllowed()。

QObject *QNetworkRequest::originatingObject() const

返回发起此网络请求的对象的引用;如果未设置或对象已被销毁,则返回nullptr

另请参阅 setOriginatingObject()。

QString QNetworkRequest::peerVerifyName() const

返回setPeerVerifyName 为证书验证设置的主机名。默认情况下返回空字符串。

另请参阅 setPeerVerifyName

QNetworkRequest::Priority QNetworkRequest::priority() const

返回该请求的优先级。

另请参见 setPriority()。

QByteArray QNetworkRequest::rawHeader(QAnyStringView headerName) const

返回头headerName 的原始形式。如果不存在这样的标头,则返回空的QByteArray ,这可能与存在但没有内容的标头没有区别(使用hasRawHeader() 查找标头是否存在)。

原始头信息可通过setRawHeader() 或setHeader() 设置。

注意: 在 6.7 之前的 Qt XML 版本中,该函数仅使用QByteArray

另请参阅 header() 和setRawHeader()。

QList<QByteArray> QNetworkRequest::rawHeaderList() const

返回此网络请求中设置的所有原始标头的列表。该列表以设置标头的顺序排列。

另请参阅 hasRawHeader() 和rawHeader()。

void QNetworkRequest::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)

将与代码code 相关联的属性设置为值value 。如果该属性已设置,则之前的值将被丢弃。特殊情况下,如果value 是一个无效的QVariant ,属性将被取消设置。

另请参阅 attribute() 和QNetworkRequest::Attribute

[since 6.2] void QNetworkRequest::setDecompressedSafetyCheckThreshold(qint64 threshold)

设置存档炸弹检查的threshold

某些支持的压缩算法可以在一个极小的压缩文件中编码出一个巨大的解压缩文件。这只有在解压缩内容极其单调的情况下才有可能,而在真诚传输的真实文件中很少出现这种情况:采用这种疯狂高压缩比的文件通常是缓冲区溢出攻击或拒绝服务(占用过多内存)攻击的有效载荷。因此,对于解压缩后体积巨大的文件,尤其是从微小的压缩格式中解压缩出来的文件,最好作为可疑恶意软件予以拒绝。

如果回复的解压缩大小大于此阈值(默认为 10 MiB,即 10 * 1024 * 1024),Qt 将检查压缩率:如果压缩率过大(GZip 和 Deflate 为 40:1,Brotli 和 ZStandard 为 100:1),回复将被视为错误。将阈值设置为-1 将禁用此检查。

此函数在 Qt 6.2 中引入。

另请参阅 decompressedSafetyCheckThreshold()。

void QNetworkRequest::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)

将已知头header 的值设置为value ,覆盖之前设置的任何头。此操作也会设置等效的原始 HTTP 头信息。

另请参阅 KnownHeaderssetRawHeader() 和header()。

[since 6.8] void QNetworkRequest::setHeaders(QHttpHeaders &&newHeaders)

在此网络请求中设置newHeaders 作为标头,覆盖之前设置的任何标头。

如果某些头信息与已知头信息相对应,则将对其值进行解析,并设置相应的解析形式。

此函数在 Qt 6.8 中引入。

另请参阅 headers() 和KnownHeaders

[since 6.8] void QNetworkRequest::setHeaders(const QHttpHeaders &newHeaders)

这是一个重载函数。

该函数在 Qt 6.8 中引入。

[since 6.5] void QNetworkRequest::setHttp1Configuration(const QHttp1Configuration &configuration)

configuration 设置请求的 HTTP/1 参数。

此函数在 Qt 6.5 中引入。

另请参见 http1Configuration,QNetworkAccessManager, 和QHttp1Configuration

void QNetworkRequest::setHttp2Configuration(const QHttp2Configuration &configuration)

configuration 开始设置请求的 HTTP/2 参数。

注意: 必须在发出请求之前设置配置。

注意: HTTP/2 在单个 HTTP/2 连接中复用多个流。这意味着QNetworkAccessManager 将使用发送到同一主机的一系列请求中第一个请求的配置。

另请参阅 http2ConfigurationQNetworkAccessManagerQHttp2Configuration

void QNetworkRequest::setMaximumRedirectsAllowed(int maxRedirectsAllowed)

将此请求允许遵循的最大重定向次数设置为maxRedirectsAllowed

另请参阅 maximumRedirectsAllowed() 。

void QNetworkRequest::setOriginatingObject(QObject *object)

允许设置对发起请求的object 的引用。

例如,Qt WebKit 会将起源对象设置为发起请求的 QWebFrame。

另请参阅 originatingObject().

void QNetworkRequest::setPeerVerifyName(const QString &peerName)

peerName 设置为用于证书验证的主机名,而不是用于 TCP 连接的主机名。

另请参阅 peerVerifyName

void QNetworkRequest::setPriority(QNetworkRequest::Priority priority)

将此请求的优先级设为priority

注意: priority 只是对网络访问管理器的提示。它可以使用,也可以不使用。目前,HTTP 使用它来决定哪个请求应首先发送到服务器。

另请参阅 priority() 。

void QNetworkRequest::setRawHeader(const QByteArray &headerName, const QByteArray &headerValue)

headerName 的标头设置为headerValue 的值。如果headerName 与已知标头对应(见QNetworkRequest::KnownHeaders ),则将解析原始格式并设置相应的 "熟 "标头。

例如

request.setRawHeader(QByteArray("Last-Modified"), QByteArray("Sun, 06 Nov 1994 08:49:37 GMT"));

也会将已知标头LastModifiedHeader 设置为解析日期的QDateTime 对象。

注意: 两次设置相同的标头会覆盖之前的设置。要实现多个同名 HTTP 标头的行为,应将两个值连接起来,用逗号(",")分隔,然后设置一个单一的原始标头。

注: 自 Qt 6.8 起,头字段名通过转换为小写进行规范化。

另请参阅 KnownHeaders,setHeader(),hasRawHeader() 和rawHeader()。

void QNetworkRequest::setSslConfiguration(const QSslConfiguration &config)

将此网络请求的 SSL 配置设为config 。适用的设置包括私钥、本地证书、TLS 协议(如 TLS 1.3)、CA 证书以及允许 SSL 后端使用的密码。

另请参阅 sslConfiguration() 和QSslConfiguration::defaultConfiguration()。

void QNetworkRequest::setTransferTimeout(int timeout)

设置timeout 为传输超时(毫秒)。

另请参阅 setTransferTimeout(std::chrono::milliseconds),transferTimeout() 和transferTimeoutAsDuration()。

[since 6.7] void QNetworkRequest::setTransferTimeout(std::chrono::milliseconds duration = DefaultTransferTimeout)

设置超时duration ,以便在没有数据交换时中止传输。

如果在超时前没有传输任何字节,传输就会中止。0 表示不设置超时。如果未提供参数,超时时间为QNetworkRequest::DefaultTransferTimeout 。如果未调用此函数,超时时间将被禁用,其值为零。

此函数在 Qt 6.7 中引入。

另请参阅 transferTimeoutAsDuration().

void QNetworkRequest::setUrl(const QUrl &url)

将此网络请求指向的 URL 设置为url

另请参阅 url() 。

QSslConfiguration QNetworkRequest::sslConfiguration() const

返回此网络请求的 SSL 配置。默认情况下与QSslConfiguration::defaultConfiguration() 相同。

另请参阅 setSslConfiguration() 和QSslConfiguration::defaultConfiguration()。

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

将此网络请求与other 互换。该操作速度非常快,从未出现过故障。

int QNetworkRequest::transferTimeout() const

返回传输所使用的超时(毫秒)。

如果transferTimeoutAsDuration().count() 不能在int 中表示,该函数将返回INT_MAX/INT_MIN

另请参阅 setTransferTimeout() 和transferTimeoutAsDuration()。

[since 6.7] std::chrono::milliseconds QNetworkRequest::transferTimeoutAsDuration() const

返回超时持续时间,超时后如果没有数据交换,传输将中止。

默认持续时间为零,即不使用超时。

此函数在 Qt 6.7 中引入。

另请参阅 setTransferTimeout(std::chrono::milliseconds)。

QUrl QNetworkRequest::url() const

返回网络请求指向的 URL。

另请参阅 setUrl()。

bool QNetworkRequest::operator!=(const QNetworkRequest &other) const

如果该对象与other 不同,则返回false

另请参见 operator==()。

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

创建一个other

bool QNetworkRequest::operator==(const QNetworkRequest &other) const

如果该对象与other 相同(即具有相同的 URL、相同的标头和相同的元数据设置),则返回true

另请参见 operator!=().

成员变量文档

const std::chrono::std::chrono::milliseconds QNetworkRequest::DefaultTransferTimeout

传输超时(QNetworkRequest::TransferTimeoutConstant 毫秒)。在调用setTransferTimeout() 时不使用参数。

© 2025 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.