|
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(), 然后进行多次读取.
|
|