- class QWebEngineUrlRequestJob#
类
QWebEngineUrlRequestJob
表示一个自定义 URL 请求。 更多信息…摘要#
方法#
def
fail()
定义
initiator()
定义
redirect()
定义
reply()
定义
requestUrl()
注
这份文档可能包含自动从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
请求失败。
使用错误
r
请求失败。另见
返回请求发起内容的序列化源。
通常,源由协议、主机名和端口组成。例如,
"http://localhost:8080"
是一个有效的源。当端口是协议的默认端口时(对于http
是 80,对于https
是 443)将省略端口。对于非网络协议(如file
和qrc
)则省略主机名。然而,也存在特殊的值
"null"
代表一个唯一的中端。例如,这是沙箱 iframe 的源。这种特殊源的目的始终与同一源中的所有其他源不同。换句话说,具有唯一源的内容不应该对任何其他内容有特权的访问。最后,如果请求没有由网络内容发起,则该函数将返回一个空的 QUrl。例如,当你调用
setUrl()
时会发生这种情况。此值可用于实现安全跨源检查。
将请求重定向到
url
。- reply(contentType, device)#
- 参数:
contentType –
QByteArray
device –
QIODevice
使用
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);
返回一个指向QIODevice的指针,该指针提供对请求数据的访问。当请求为POST请求时,请求数据可以包含数据。如果请求数据为空,那么QIODevice会反映这一点,并且在对它进行读取操作时不会返回任何数据。
另见
- requestHeaders()#
- 返回类型::
字典,键的类型为QByteArray,值为QByteArray。
返回添加到请求中的任何HTTP头。
- requestMethod()#
- 返回类型::
返回请求的HTTP方法(例如,GET或POST)。
返回请求的URL。
- setAdditionalResponseHeaders(additionalResponseHeaders)#
- 参数:
additionalResponseHeaders – .QMultiMapQByteArray,QByteArray
设置
additionalResponseHeaders
。这些额外的响应头仅在调用reply
(const QByteArray&, QIODevice*)时使用。