在用Qt自带的QNetworkAccessManager做http请求时,碰到一些坑,比如在请求过程中,碰到断网后,即使再把网线连上,也无法请求,而且报错信息为:
QNetworkReply::UnknownNetworkError "Network access is disabled."
原因可以参考:https://blog.youkuaiyun.com/linkang1024/article/details/96306421
大致就是说,断网了后,网络状态改变了,但是重新连网后状态并没有更正过来,所以http请求就一直报错。
解决方式:
每次发送http请求前,如下操作
if (m_manager->networkAccessible() != QNetworkAccessManager::Accessible)
{
m_manager->setNetworkAccessible(QNetworkAccessManager::Accessible);
}
存在网络缓存也会导致一直请求失败,可以清掉缓存
void clearAccessCache()
void clearConnectionCache()
碰到问题,可以多看看QNetworkAccessManager,里面有很多你没想到的东西。