0

我不确定我需要的功能是否不是 Qt 无法提供的功能,但似乎由于有多个有效的用例,我可能做错了什么并且有人已经处理了这个问题。

我想做的很简单——我想发出一个具有给定内容长度的 POST 请求,并从QIODevice. QNetworkAccessManager有一种方法QNetworkReply * QNetworkAccessManager::post(const QNetworkRequest & request, QIODevice * data)似乎对此很理想。内容长度很大(假设为 8 GB),并且似乎 QtQIODevice::readData在将任何内容发送到网络之前尝试调用以获取所有数据(至少 Wireshark 在设置较小的内容长度时没有显示任何内容,例如 4 ,产生读取 4 个字节并传输所有内容的行为)。这让我相信 Qt 实际上想要缓冲所有的 POST 内容。我已经明确设置了QNetworkRequest::DoNotBufferUploadDataAttribute属性,但这并没有改变这一点。

可能它实际上是这样工作的,我对此无能为力,但在这种情况下,根本不适合内存的大文件上传如何工作?无论如何,在我调试 Qt 是否真的在缓冲整个事情时,欢迎遇到同样问题的人提供任何反馈。

4

0 回答 0