如何获取 QNetworkAccessManager 连接状态?
Posted
技术标签:
【中文标题】如何获取 QNetworkAccessManager 连接状态?【英文标题】:How to obtain QNetworkAccessManager's connection states? 【发布时间】:2011-05-13 06:03:26 【问题描述】:我需要查看 QNetworkAccessManager 的不同连接状态。如何做到这一点,或者使用 QT 是否有可能?
QHttp中的例子,有枚举状态: QHttp enum state
QTCPSocket,有SocketState: QAbstractSocket state
对我来说最重要的是知道 manager 何时连接到主机以及在 manager 开始上传数据之前。
【问题讨论】:
【参考方案1】:就像Phil 提到的那样,QNetworkAccessManager 已经抽象了大部分方法。要获取连接状态,请在使用 QNetworkAccessManager 之前使用 QNetworkSession。
要获取当前会话的状态,请使用此状态函数 (http://doc.qt.nokia.com/qtmobility/qnetworksession.html#State-enum)
阅读此处的完整文档将对您有很大帮助。 http://doc.qt.nokia.com/qtmobility/qnetworksession.html
【讨论】:
谢谢你们。 Qnetworksession 是我一直在寻找的。对不起,我不能给你代表。因为我没有足够的代表。【参考方案2】:过去我发布并连接到finished 信号。这包含让您知道传输是否有错误的回复。如果您想检测何时下线,还有networkAccessibleChanged 信号。
QNetworkAccessManager
比QHttp
和QTCPSocket
更高级别,因此它们已经抽象出套接字连接状态。
【讨论】:
以上是关于如何获取 QNetworkAccessManager 连接状态?的主要内容,如果未能解决你的问题,请参考以下文章