【发布时间】:2014-08-05 15:26:30
【问题描述】:
我正在使用 qt5.3,在发布之前我搜索了很多。
我想从QNetworkReply 读取数据。我有一个QWebView,我还需要QWebView 读取http 响应来显示网页。我需要的只是记录网页内容或对 http 帖子的任何响应。
问题是QNetworkReply 只能读取一次。
如果我在选择
readyRead()信号时调用readAll(),我将获得完整的数据。但它会被清除,所以QWebView什么都不显示(它不会得到任何回复数据)。
1234563
QNetworkReply、经理或任何班级是否在某个地方存储了我仍然可以读取的数据?
在#1 中,如果我调用peek(),我可以获得部分数据。此功能不会清除响应数据。但是如果响应体很大,它就行不通了。 QNetworkReply 是一个顺序的东西,我既不能知道它的数据,也不能读取比缓冲的更远的内容。
我不知道如何处理这个.....
我只想监视和记录在我的QWebView 上发出的任何请求的请求和响应正文...
编辑:请注意,我要从响应中读取的数据高达 1MB,因此不进一步阅读就无法查看整个数据。
【问题讨论】:
-
您的第 1 点和第 2 点都源于您对如何使用
QNetworkReply的误解。在编程中,没有只能读取一次的东西。要么缓冲它,要么不缓冲;您最终会丢失数据。
标签: c++ qt response qwebview qnetworkreply