我正在用qt5编写一个小型应用程序。此应用程序每分钟都会收到API服务器的回复。一切正常,但我遇到了一个错误。
在测试应用程序时,我发现如果无线断开连接并再次重新连接,则该应用程序将正常运行。另外,如果我使用宽带连接,并且连接断开并再次重新连接,那么一切正常。现在,如果我在应用程序启动时使用无线设备,则断开无线连接并连接宽带,该程序将看不到宽带连接,并不断给我网络错误。
我使用单个QNetworkAccessManager
实例进行连接。有趣的是,如果我QNetworkAccessManager
为每个请求创建一个新实例,则该应用程序将正常运行。但是我认为为每个请求声明一个新实例并建立连接会产生开销。我也尝试clearAccessCache()
在没有运气的情况下使用该请求。
因此,基本上我正在寻找可以QNetworkAccessManager
在每个请求中重置的东西。这是我的请求的示例代码:
// At class construct
manager = new QNetworkAccessManager(this);
// ....
// At member function
url = new QUrl("http://www.gridstatusnow.com/status");
manager->get(QNetworkRequest(*url));
您可以尝试QNetworkAccessManager
仅在无法访问网络时重新创建:
// At member function
if (manager->networkAccessible() == QNetworkAccessManager::NotAccessible)
{
delete manager;
manager = new QNetworkAccessManager(this);
}
该文档说明:
默认情况下,此属性的值反映设备的物理状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句