class QWebEngineUrlRequestJob#

QWebEngineUrlRequestJob 表示一个自定义 URL 请求。 更多信息

Inheritance diagram of PySide6.QtWebEngineCore.QWebEngineUrlRequestJob

摘要#

方法#

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

详细描述#

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

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

class Error#

此枚举类型包含发生错误的类型

常量

描述

QWebEngineUrlRequestJob.NoError

请求成功。

QWebEngineUrlRequestJob.UrlNotFound

请求的URL未找到。

QWebEngineUrlRequestJob.UrlInvalid

请求的URL无效。

QWebEngineUrlRequestJob.RequestAborted

请求被取消。

QWebEngineUrlRequestJob.RequestDenied

请求被拒绝。

QWebEngineUrlRequestJob.RequestFailed

请求失败。

fail(error)#
参数:

errorError

使用错误 r 请求失败。

另见

错误

initiator()#
返回类型::

QUrl

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

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

然而,也存在特殊的值 "null" 代表一个唯一的中端。例如,这是沙箱 iframe 的源。这种特殊源的目的始终与同一源中的所有其他源不同。换句话说,具有唯一源的内容不应该对任何其他内容有特权的访问。

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

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

redirect(url)#
参数:

urlQUrl

将请求重定向到 url

reply(contentType, device)#
参数:

使用 device 和内容类型 contentType 对请求进行回复。内容类型类似于 HTTP Content-Type 头,可以是 MIME 类型,或者按如下方式组合 MIME 类型及其 charset 编码:“text/html; charset=utf-8”。

用户必须意识到,在作业删除之前,device将在另一个线程上使用。如果需要从主线程同时访问,用户负责使对device的访问线程安全,例如通过使用QMutex。注意,device对象不属于网页引擎。因此,必须监视QWebEngineUrlRequestJob的QObject::destroyed()信号。

设备至少应保持与作业存在的时间一样长。在调用此方法时,如果使用新构造的设备,可以将解决方案之一是将设备作为作业的子项,或者在作业删除时删除自身,如下所示

connect(job, &QObject::destroyed, device, &QObject::deleteLater);
requestBody()#
返回类型::

QIODevice

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

另见

QIODevice

requestHeaders()#
返回类型::

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

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

requestMethod()#
返回类型::

QByteArray

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

requestUrl()#
返回类型::

QUrl

返回请求的URL。

setAdditionalResponseHeaders(additionalResponseHeaders)#
参数:

additionalResponseHeaders – .QMultiMapQByteArray,QByteArray

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