首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Qt QWebEngineView获取HTTP状态码?

从Qt QWebEngineView获取HTTP状态码的方法是通过QWebEngineView的loadFinished信号和QWebEngineView的page()函数来实现。

首先,连接loadFinished信号到一个槽函数,该槽函数将在网页加载完成时被调用。在槽函数中,可以通过QWebEngineView的page()函数获取当前加载的网页的QWebEnginePage对象。

然后,可以使用QWebEnginePage的networkAccessManager()函数获取QNetworkAccessManager对象,通过该对象可以获取到网页的HTTP请求和响应信息。

最后,可以使用QNetworkReply的attribute()函数获取HTTP状态码。HTTP状态码可以通过QNetworkReply::HttpStatusCodeAttribute属性来获取。

以下是一个示例代码:

代码语言:cpp
复制
#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状态码用于其他用途。

腾讯云相关产品和产品介绍链接地址:

请注意,以上仅为示例,具体的产品选择应根据实际需求和情况进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券