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