1.综述
QNetworkReply类包含用QNetworkAccessManager发送的请求的数据和报头
QNetworkReply类包含与QNetworkAccessManager发布的请求相关的数据和元数据。像QNetworkRequest一样,它包含一个URL和报头(以解析的和原始的形式),一些关于应答状态的信息和应答本身的内容。
QNetworkReply是一个顺序访问的QIODevice,这意味着一旦从对象中读取数据,它就不再被设备保存。因此,如果需要,应用程序有责任保存这些数据。每当从网络接收并处理更多数据时,就会发出readyRead()信号。
当接收到数据时,downloadProgress()信号也会发出,但如果对内容进行了任何转换(例如,解压和删除协议开销),则其中包含的字节数可能不代表实际接收的字节数。
即使QNetworkReply是一个连接到应答内容的QIODevice,它也会发出uploadProgress()信号,该信号指示具有此类内容的操作的上传进度。
注意:不要删除连接到error()或finished()信号的槽中的对象。应该使用deleteLater()。
参见QNetworkRequest和QNetworkAccessManager。
2.重要的信号
void downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
void encrypted()
void error(QNetworkReply::NetworkError code)
connect(networkReply, static_cast<void(QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
[=](QNetworkReply::NetworkError code){ /* ... */ });
void finished()
void metaDataChanged()
void preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
void redirectAllowed()
void redirected(const QUrl &url)
void sslErrors(const QList<QSslError> &errors)
void uploadProgress(qint64 bytesSent, qint64 bytesTotal)