QNetworkReply - 建立连接,写入第一个字节等

Posted

技术标签:

【中文标题】QNetworkReply - 建立连接,写入第一个字节等【英文标题】:QNetworkReply - connection established, first byte written, etc 【发布时间】:2011-01-25 22:47:27 【问题描述】:

我想记录 QNetworkReply 对象的生命周期。这包括:

    当底层套接字连接建立时 发送请求的第一个字节时 收到响应的第一个字节时 响应的最后一个字节结束时

(3) 和(4) 可以通过监听downloadProgress 信号来确定,但我不知道如何做(1) 和(2)。有没有办法监听 QNetworkReply 的底层套接字? GET 请求似乎不会触发 uploadprogress 信号。

【问题讨论】:

您能告诉我们为什么您需要知道清单中的前两件事吗? 我正在尝试模拟下载一个网站需要多长时间。 【参考方案1】:

我不知道 (1) 是否可行,但其他很容易。你看过我的network trace 例子吗?它不适用于您的情况吗?

【讨论】:

+1 不错的代码。但是我看不出它如何回答第二个问题 - 请求的第一个字节何时发送? 我认为这是相当低的水平。这取决于仍有多少 HTTP 连接可用、缓存、流水线等...【参考方案2】:

据我所知,Qt 没有公开QNetworkAccessManager 用来获取数据的机制,所以我认为你无法完成列表中的第一个任务和第二个任务。 请记住,QNetworkAccessManager 不仅可以处理 http(s): 方案,还可以处理不需要任何套接字连接的本地方案,例如 file:qrc:

【讨论】:

以上是关于QNetworkReply - 建立连接,写入第一个字节等的主要内容,如果未能解决你的问题,请参考以下文章

qt QNetworkReply 从互联网广播下载媒体流

获取简单 URL 时出现 QNetworkReply 错误“连接已关闭”

QNetworkReply::error 信号何时会跟随finished() 信号?

QNetworkReply:在 QWebView 中禁用了网络访问

连续上传导致 QNetworkReply 错误“无法分配内存”

下载历史版本项目 与线上建立连接