当接收的数据很大时,无法从QNetworkAccessManager :: finished槽读取接收的数据

时间:2015-01-07 07:35:38

标签: c++ qt networking network-programming

我正在使用QNetworkAccessManager类对URL执行GET请求。我已将finished()信号连接到名为httpReply()的插槽,此插槽的代码可以在下面看到。

我在同一台服务器上尝试了两个不同的页面。第一个是较小的(约1500字节),第二个约为45000字节。

第一页在应用程序输出窗口中使用qDebug()打印正常。第二个根本不打印任何东西,甚至不是一个空字符串,如:“”

我想也许qDebug()不喜欢这个大小,所以我试着将它写入文件,但没有任何内容写入文件。

我怀疑也许是readAll()函数?我尝试了readLine(),但没有打印任何东西。

现在我被卡住了..

EDIT1: 调用bytesAvailable()函数时,我得到了正确的大小。

EDIT2: 我尝试使用相同版本的Qt(5.4.0)的不同编译器,它仍然无法正常工作。然后我尝试了以前版本的Qt,5.3.0和5.2.0都使用相同的两个编译器,它按预期工作。

我想5.4.0中有一个错误(或者我看不到的某些功能改变)?

httpReply():

void MyClass::httpReply(QNetworkReply *reply)
{
    qDebug() << reply->bytesAvailable();
    qDebug() << "Reply: ";
    qDebug() << reply->readAll();
}

0 个答案:

没有答案