QWebEngineUrlRequestJob 类
QWebEngineUrlRequestJob 类表示一个自定义的 URL 请求。 更多...
头文件 | #include <QWebEngineUrlRequestJob> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake | QT += webenginecore |
继承 | QObject |
公共类型
枚举 | Error { NoError, UrlNotFound, UrlInvalid, RequestAborted, RequestDenied, RequestFailed } |
公共函数
void | fail(QWebEngineUrlRequestJob::Error r) |
QUrl | initiator() const |
void | redirect(const QUrl &url) |
void | reply(const QByteArray &contentType, QIODevice *device) |
(since 6.7) QIODevice * | requestBody() const |
QMap<QByteArray, QByteArray> | requestHeaders() const |
QByteArray | requestMethod() const |
QUrl | requestUrl() const |
(since 6.6) void | setAdditionalResponseHeaders(const QMultiMap<QByteArray, QByteArray> &additionalResponseHeaders) const |
详细描述
QWebEngineUrlRequestJob 由QWebEngineUrlSchemeHandler::requestStarted()提供,并由该类派生实现的子类处理。可以调用reply(),redirect(),或fail()来处理作业。
该类归网络引擎所有,无需删除。但是,当作业不再需要时,网络引擎可能会删除作业,因此如果存储了对象的指针,则必须监视信号QObject::destroyed()。
成员类型文档
enum QWebEngineUrlRequestJob::Error
此枚举类型包含发生的错误类型
常数 | 值 | 描述 |
---|---|---|
QWebEngineUrlRequestJob::NoError | 0 | 请求成功。 |
QWebEngineUrlRequestJob::UrlNotFound | 1 | 请求的 URL 未找到。 |
QWebEngineUrlRequestJob::UrlInvalid | 2 | 请求的 URL 无效。 |
QWebEngineUrlRequestJob::RequestAborted | 3 | 请求被取消。 |
QWebEngineUrlRequestJob::RequestDenied | 4 | 请求被拒绝。 |
QWebEngineUrlRequestJob::RequestFailed | 5 | 请求失败。 |
成员函数文档
void QWebEngineUrlRequestJob::fail(QWebEngineUrlRequestJob::Error r)
以错误 r 拒绝请求。
另请参阅:Error。
QUrl QWebEngineUrlRequestJob::initiator() const
返回启动请求的内容的序列化源。
通常,源包括方案、主机名和端口。例如,"http://localhost:8080"
是一个有效的源。如果端口是方案的默认端口(对于 http
为 80,对于 https
为 443),则省略端口。对于非网络方案(如 file
和 qrc
),省略主机名。
然而,也存在一个特殊的值 "null"
,表示一个唯一的源。例如,它是沙箱 iframe 的源。这个特殊源的目的始终与同源检查中的所有其他源都不同。换句话说,具有唯一源的 内容不应具有对任何其他内容的特权访问。
最后,如果请求不是由网络内容启动的,该函数将返回一个空的 QUrl。例如,当您调用 QWebEnginePage::setUrl() 时会发生这种情况。
此值可用于实现安全的跨源检查。
void QWebEngineUrlRequestJob::redirect(const QUrl &url)
将请求重定向到 url。
void QWebEngineUrlRequestJob::reply(const QByteArray &contentType, QIODevice *device)
使用 device 和内容类型 contentType 回复请求。内容类型类似于 HTTP Content-Type 标头,可以是 MIME 类型,或联合使用这样的 MIME 类型:text/html; charset=utf-8。
用户必须意识到,device 将在被删除之前在另一个线程中使用。如果希望从主线程进行并发访问,则用户负责使 device 线程安全,例如通过使用 QMutex。请注意,device 对象不属于 Web 引擎。因此,必须监视 QObject::destroyed() 信号。
该设备应至少存在于作业存在的时间内。在调用此方法时,如果使用新构造的设备,一种解决方案是将设备作为作业的子项或在其被删除时删除自己,如下所示
[since 6.7]
QIODevice *QWebEngineUrlRequestJob::requestBody() const
返回一个指向可以访问请求体的 QIODevice 的指针。请求体可以包含数据,例如当请求是 POST 请求时。如果请求体为空,则 QIODevice 反映这一点,并在对它执行读取操作时不会返回任何数据。
此函数是在 Qt 6.7 中引入的。
另请参阅:QIODevice。
QMap<QByteArray, QByteArray> QWebEngineUrlRequestJob::requestHeaders() const
返回添加到请求中的任何 HTTP 头。
QByteArray QWebEngineUrlRequestJob::requestMethod() const
返回请求的HTTP方法(例如,GET或POST)。
QUrl QWebEngineUrlRequestJob::requestUrl() const
返回请求的URL。
[自6.6版起]
void QWebEngineUrlRequestJob::setAdditionalResponseHeaders(const QMultiMap<QByteArray, QByteArray> &additionalResponseHeaders) const
设置 additionalResponseHeaders。这些响应的附加头仅在调用 QWebEngineUrlRequestJob::reply(const QByteArray&, QIODevice*) 时使用。
此功能自 Qt 6.6 版本引入。
© 2024 Qt 公司。此处包含的文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt及其标志是在芬兰和其他国家/地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。