gpt4 book ai didi

qtwebkit - QTWebKit 加载页面失败时如何获取详细的错误信息?

转载 作者:行者123 更新时间:2023-12-04 02:08:21 27 4
gpt4 key购买 nike

QtWebKit 调用 QWebPage::loadFinished ( false )当网页无法加载时 - 但不知道为什么会失败。

如何获取详细的错误消息,例如 HTTP 响应代码或其他消息?

最佳答案

事实证明,有几种方法可以获取有关失败的更多详细信息:

  • 实现 onResourceRequestedonResourceReceived页面回调:
    page.onResourceRequested = function (resource) {
    log('resource requested: ' + resource.url);
    }

    page.onResourceReceived = function (resource) {
    log('resource received: ' + resource.status + ' ' + resource.statusText + ' ' +
    resource.contentType + ' ' + resource.url);
    }
  • 如果您仍在寻找更多细节,则需要修补 PhantomJS 内部结构。更新它的 CustomPage 对象(在 WebPage.cpp 中)以实现 QTWebKit 的 ErrorExtension。这是您可以添加的代码:
    protected: 
    bool supportsExtension(Extension extension) const {
    if (extension == QWebPage::ErrorPageExtension)
    {
    return true;
    }
    return false;
    }

    bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0)
    {
    if (extension != QWebPage::ErrorPageExtension)
    return false;

    ErrorPageExtensionOption *errorOption = (ErrorPageExtensionOption*) option;
    std::cerr << "Error loading " << qPrintable(errorOption->url.toString()) << std::endl;
    if(errorOption->domain == QWebPage::QtNetwork)
    std::cerr << "Network error (" << errorOption->error << "): ";
    else if(errorOption->domain == QWebPage::Http)
    std::cerr << "HTTP error (" << errorOption->error << "): ";
    else if(errorOption->domain == QWebPage::WebKit)
    std::cerr << "WebKit error (" << errorOption->error << "): ";

    std::cerr << qPrintable(errorOption->errorString) << std::endl;

    return false;
    }

  • 这将为您提供大部分错误信息,但您仍然可以获得 onLoadFinished(success=false)事件而没有得到更多细节。根据我的研究,这些的主要原因是取消了加载请求。 QTWebKit 发送取消失败通知,但不报告任何详细信息。

    关于qtwebkit - QTWebKit 加载页面失败时如何获取详细的错误信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7279046/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com