PySide6.QtWebEngineCore.QWebEngineUrlRequestJob

class QWebEngineUrlRequestJob

QWebEngineUrlRequestJob 类表示一个自定义的URL请求。更多

PySide6.QtWebEngineCore.QWebEngineUrlRequestJob 的继承图

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

一个 QWebEngineUrlRequestJob 被传递给 requestStarted(),并且必须由该类的派生实现来处理。可以通过调用 reply()redirect()fail() 来处理该任务。

该类由网络引擎拥有,不需要被删除。然而,当不再需要时,网络引擎可能会删除该作业,因此如果存储了指向该对象的指针,则必须监视信号 QObject::destroyed()。

class Error

此枚举类型保存发生的错误类型:

常量

描述

QWebEngineUrlRequestJob.NoError

请求成功。(自 Qt 6.8 起已弃用)

QWebEngineUrlRequestJob.UrlNotFound

请求的URL未找到。

QWebEngineUrlRequestJob.UrlInvalid

请求的URL无效。

QWebEngineUrlRequestJob.RequestAborted

请求被取消。

QWebEngineUrlRequestJob.RequestDenied

请求被拒绝。

QWebEngineUrlRequestJob.RequestFailed

请求失败。

fail(error)
Parameters:

错误Error

请求失败,错误为 r

另请参阅

错误

initiator()
Return type:

QUrl

返回发起请求的内容的序列化来源。

通常,源由方案、主机名和端口组成。例如,"http://localhost:8080" 将是一个有效的源。如果端口是方案的默认端口(http 为80,https 为443),则省略端口。对于非网络方案,如 fileqrc,则省略主机名。

然而,还有一个特殊值"null"表示一个独特的来源。例如,它是一个沙盒化的iframe的来源。这个特殊来源的目的是在同源检查中始终与所有其他来源不同。换句话说,具有独特来源的内容永远不应该拥有对其他内容的特权访问。

最后,如果请求不是由网页内容发起的,函数将返回一个空的QUrl。例如,当你调用setUrl()时,这种情况就会发生。

此值可用于实现安全的跨域检查。

redirect(url)
Parameters:

urlQUrl

将请求重定向到 url

reply(contentType, device)
Parameters:

使用device和内容类型contentType回复请求。内容类型类似于HTTP Content-Type头,可以是一个MIME类型,也可以是一个MIME类型和字符集编码的组合,例如:“text/html; charset=utf-8”。

用户必须意识到,device 将在另一个线程上使用,直到作业被删除。如果希望从主线程同时访问,用户有责任确保对 device 的访问是线程安全的,例如通过使用 QMutex。请注意,device 对象不属于 web 引擎。因此,必须监视 QWebEngineUrlRequestJob 的 QObject::destroyed() 信号。

设备应在作业存在的整个期间保持可用。当使用新构建的设备调用此方法时,一种解决方案是将设备作为作业的子项,或在作业删除时删除自身,如下所示:

connect(job, &QObject::destroyed, device, &QObject::deleteLater);
requestBody()
Return type:

QIODevice

返回一个指向QIODevice的指针,该指针提供对请求体的访问。请求体可以包含数据,例如当请求是POST请求时。如果请求体为空,QIODevice会反映这一点,并且在执行读取操作时不会返回任何数据。

另请参阅

QIODevice

requestHeaders()
Return type:

字典的键类型为 .QByteArray,值类型为 QByteArray。

返回添加到请求中的任何HTTP头。

requestMethod()
Return type:

QByteArray

返回请求的HTTP方法(例如,GET或POST)。

requestUrl()
Return type:

QUrl

返回请求的URL。

setAdditionalResponseHeaders(additionalResponseHeaders)
Parameters:

additionalResponseHeaders – .QMultiMapQByteArray,QByteArray

设置 additionalResponseHeaders。这些额外的响应头仅在调用 reply (const QByteArray&, QIODevice*) 时使用。