Qt网络QNetworkReply,QNetworkRequest,QNetworkAccessManager

QNetworkReply

(1)

SIGNAL(finished()),当回复完成处理时,将发出此信号。发出此信号后,回复的数据或元数据将不再更新。除非调用了 close() 或 abort(),否则回复仍将打开以供读取,因此可以通过调用 read() 或 readAll() 来检索数据。特别是,如果由于 readyRead() 而没有调用 read(),则对 readAll() 的调用将检索 QByteArray 中的完整内容。此信号与 QNetworkAccessManager::done() 一起发出,其中该信号的回复参数是此对象。注意:请勿删除连接到此信号的插槽中的对象。使用 deleteLater()。
你也可以使用 isDone() 来检查 QNetworkReply 是否在收到 finish() 信号之前就已经完成。
另请参阅 setDone()、QNetworkAccessManager::done() 和 isDone()。

(2)

readyRead()

每次有新数据可用于从设备的当前读取通道读取时,都会发出一次此信号。只有在新数据可用时,例如当新的网络数据有效负载到达网络套接字时,或者当新数据块附加到设备时,它才会再次发出。readyRead() 不是递归发出的;如果您重新进入事件循环或在连接到 readyRead() 信号的插槽内调用 waitForReadyRead(),则信号将不会重新发出(尽管 waitForReadyRead() 仍可能返回 true)。对于实现从 QIODevice 派生的类的开发人员请注意:当新数据到达时,您应该始终发出 readyRead()(不要仅仅因为缓冲区中仍有数据需要读取而发出它)。不要在其他条件下发出 readyRead()。

(3)downloadProgress(qint64 bytesReceived, qint64 bytesTotal)

发出此信号以指示此网络请求的下载部分的进度(如果有)。如果没有与此请求关联的下载,则此信号将发出一次,0 作为 bytesReceived 和 bytesTotal 的值。
bytesReceived 参数指示接收的字节数,而 bytesTotal 表示预期下载的总字节数。如果不知道要下载的字节数,则总字节数将为 -1。
当 bytesReceived 等于 bytesTotal) 时,下载完成。此时,字节总数将不是 -1。
请注意,bytesReceived 和 bytesTotal 的值可能与 size()、通过 read() 或 readAll() 获得的总字节数或标头的值(ContentLengthHeader)不同。原因是可能存在协议开销,或者在下载过程中可能会压缩数据。

(4)error(QNetworkReply::NetworkError code)

当回复检测到处理错误时,将发出此信号。done() 信号可能会随之而来,表明连接结束。
代码参数包含检测到的错误的代码。调用 errorString() 以获取错误条件的文本表示形式。
注意:请勿删除连接到此信号的插槽中的对象。使用 deleteLater()。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值