找回密码
 立即注册
收起左侧

Qnetworkreply 无法获取完整数据的问题

0
回复
11586
查看
[复制链接]
累计签到:1 天
连续签到:1 天
来源: 2021-6-12 15:16:35 显示全部楼层 |阅读模式
5Qter豆
代码如下:
    networkManager=new QNetworkAccessManager();    connect(networkManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(getNetworkData(QNetworkReply*)));

    QNetworkRequest request;    request.setUrl(QUrl("http://www.qq.com"));    request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("Content-Type:application/x-www-form-urlencoded"));    networkManager->post(request,mounthData.toUtf8());

void MainWindow::getNetworkData(QNetworkReply *reply){    nwData+=QString(reply->readAll());    qDebug()<<nwData;}




简单取了这部分的代码,现实情况是能收到数据,但是不全,只有一部分。也在网上搜索了一下,说是需要多次读取,但是没有说怎么多次读取,我也没搞明白,请大家给指点迷津。网上一个类似问题的回复如下:QNetworkReply 下载东西的时候,因为不可能缓冲所有的数据. 所以需要手动的把缓冲区的数据存下来. 你可以在QNetworkReply的downloadProgress信号上,去判断有效数据bytesAvailable()和是否完成了isFinished(), 然后进行多次读取.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了