Pobierałem plik za pomocą QNetworkAccessManager :: get, ale w przeciwieństwie do QHttp :: get nie ma wbudowanego sposobu bezpośredniego zapisu odpowiedzi na inną QIODevice.Zapisywanie QNetworkReply do pliku
Najłatwiej byłoby zrobić coś takiego:
QIODevice* device;
QNetworkReply* reply = manager.get(url);
connect(reply, SIGNAL(readyRead()), this, SLOT(newData()));
a następnie w newData gniazda:
device->write(reply->readAll());
Ale nie jestem pewien, czy jest to właściwy sposób, może coś przeoczyłem.
ja nie wpadł dotąd żadnych problemów, ale obawiam się, że jeżeli mam dużą ilość równoległych pobrania, cała ta operacja może spowodować szyjkę butelki. –
Mało prawdopodobne, ale możliwe. Możesz zoptymalizować za pomocą stosu 'char buffer [4098]', aby uniknąć 'malloc() s' zaangażowanego w tworzenie' QByteArray'. Istnieje również 'QVarLengthArray'. –
Tak, właśnie to zrobiłem w lokalnej tablicy char. dzięki za pomoc. –