QNetworkReply:在 QWebView 中禁用了网络访问

Posted

技术标签:

【中文标题】QNetworkReply:在 QWebView 中禁用了网络访问【英文标题】:QNetworkReply: Network access is disabled in QWebView 【发布时间】:2016-02-11 10:51:54 【问题描述】:

我无法将网站加载到我的 QWebView,QNetworkReply 向我返回错误:网络访问被禁用。从本地作品加载文件。

我正在使用 Qt5。有谁知道为什么连接被禁用以及这条线如何影响这种情况:

QNetworkProxyFactory::setUseSystemConfiguration(false);

我的 eth0 连接正常,我可以 ping 任何网站。

【问题讨论】:

【参考方案1】:

来自 Qt 文档:calling setUseSystemConfiguration() overrides any application proxy or proxy factory that was previously set. 所以请注意之前不要设置任何其他代理。

此外,如果你想检查网络访问,你可以这样做:

QNetworkAccessManager   m_pManager;
QNetworkConfigurationManager configManager;    
m_pManager.setConfiguration(configManager.defaultConfiguration());

connect(&m_pManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
connect(&m_pManager, SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)), this, SLOT(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)));

在你的位置:

if(accessible != QNetworkAccessManager::Accessible)
    
        // case where the network is not available
    

而对于回复,你可以在槽replyFinished()查看过程中是否有错误。

【讨论】:

以上是关于QNetworkReply:在 QWebView 中禁用了网络访问的主要内容,如果未能解决你的问题,请参考以下文章

如何制作自己的自定义 QNetworkReply?

QNetworkReply 在发出完成信号时抛出 SIGSEGV

QNetworkReply 没有得到任何标题

QWebView 自动标签

QNetworkReply 未被删除

如何从 QWebPage 使用的 QNetworkReply 读取数据?