QNetworkReply error: Network access is disabled

QNetworkReply error: Network access is disabled

我正在使用 QNetworkRequest/QNetworkReply 下载文件。在成千上万人使用的旧程序版本上,它运行完美(VS 2010 编译器)。升级到 Visual Studio 2015 并使用 XP 目标重新编译整个项目(与 OpenSSL 的过程相同)一些 用户在启动下载时开始出现错误:

Network access is disabled.

错误记录在连接到来自 QNetworkReply::NetworkError 的 error() 信号的插槽中。

代码:

QNetworkReply reply = nam.get(QNetworkRequest(url));
emit sendInfo("Starting download");
QObject::connect(reply, SIGNAL(finished()), this, SLOT(finishedSlot()));
QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(errorSlot(QNetworkReply::NetworkError)));
QObject::connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(progressSlot(qint64, qint64)));

我设法在其中一台受影响的机器上安装了 Wireshark,但没有向互联网发出请求,所以它从一开始就失败了。到目前为止,我无法找出导致这些机器出现问题的原因。 OS 版本无关紧要,尝试禁用 AV/firewall 等。我也无法找到返回的错误字符串的任何详细信息。

该代码适用于 90% 的人,并且已经过测试,从 XP SP3 到 Windows 10。

可能是什么问题,我该如何调试它?

显然是 Qt 5.5.1 中的一个错误 https://github.com/owncloud/client/issues/3600 虽然我不能 100% 确定这一点。

我遇到了同样的问题。看了QNetworkAccessManager的官方material后,找到了解决方法。初始化QNetworkAccessManager后,需要添加如下代码:

net_mgr->setNetworkAccessible(QNetworkAccessManager::Accessible);