我正在使用QNetworkRequest/QNetworkReply下载一个文件。在一个被成千上万的人使用的旧的程序版本上,它完美地工作着(VS 2010编译器)。升级到Visual 2015并使用XP目标重新编译整个项目(与OpenSSL相同的过程)之后,一些用户在下载启动时开始收到错误:
网络访问被禁用。
该错误记录在一个连接到来自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,但是没有向互联网提出任何请求,所以它从一开始就失败了。到目前为止,我还没能在这些机器上找到问题的原因。操作系统版本不重要,尝试禁用AV/防火墙等。我也无法找到任何细节的错误字符串,是返回。
这段代码对90%的人来说很好,并且从XP SP3到Windows 10都进行了测试。
什么可能是问题,我如何进行调试?
发布于 2016-02-16 15:06:01
显然是QT5.5.1 https://github.com/owncloud/client/issues/3600中的一个错误,尽管我不能100%肯定地确认这一点。
发布于 2021-12-21 05:41:01
我也遇到了同样的问题。在看了QNetworkAccessManager的官方资料后,我找到了解决方案。初始化QNetworkAccessManager之后,应该添加以下代码:
net_mgr->setNetworkAccessible(QNetworkAccessManager::Accessible);https://stackoverflow.com/questions/35236341
复制相似问题