从Qt QWebEngineView获取HTTP状态码的方法是通过QWebEngineView的loadFinished信号和QWebEngineView的page()函数来实现。
首先,连接loadFinished信号到一个槽函数,该槽函数将在网页加载完成时被调用。在槽函数中,可以通过QWebEngineView的page()函数获取当前加载的网页的QWebEnginePage对象。
然后,可以使用QWebEnginePage的networkAccessManager()函数获取QNetworkAccessManager对象,通过该对象可以获取到网页的HTTP请求和响应信息。
最后,可以使用QNetworkReply的attribute()函数获取HTTP状态码。HTTP状态码可以通过QNetworkReply::HttpStatusCodeAttribute属性来获取。
以下是一个示例代码:
#include <QApplication>
#include <QWebEngineView>
#include <QWebEnginePage>
#include <QNetworkAccessManager>
#include <QNetworkReply>
class WebView : public QWebEngineView
{
Q_OBJECT
public:
WebView(QWidget *parent = nullptr) : QWebEngineView(parent)
{
connect(this, &QWebEngineView::loadFinished, this, &WebView::onLoadFinished);
}
private slots:
void onLoadFinished(bool ok)
{
if (ok) {
QWebEnginePage *page = this->page();
QNetworkAccessManager *manager = page->networkAccessManager();
QNetworkReply *reply = manager->currentReply();
if (reply) {
QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
qDebug() << "HTTP Status Code:" << statusCode.toInt();
}
}
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
WebView webView;
webView.load(QUrl("https://www.example.com"));
webView.show();
return a.exec();
}
#include "main.moc"
在上述示例代码中,当网页加载完成后,会输出HTTP状态码到调试输出。你可以根据需要修改代码,将HTTP状态码用于其他用途。
腾讯云相关产品和产品介绍链接地址:
请注意,以上仅为示例,具体的产品选择应根据实际需求和情况进行评估和选择。
领取专属 10元无门槛券
手把手带您无忧上云