Sto scaricando un file utilizzando QNetworkAccessManager :: ottieni ma a differenza di QHttp :: non c'è modo incorporato per scrivere direttamente la risposta su un altro oggetto QIOD.Scrittura di un QNetworkReply su un file
Il modo più semplice sarebbe quella di fare qualcosa di simile:
QIODevice* device;
QNetworkReply* reply = manager.get(url);
connect(reply, SIGNAL(readyRead()), this, SLOT(newData()));
e poi nello slot newData:
device->write(reply->readAll());
Ma non sono sicuro se questo è il modo giusto, forse perso qualcosa.
io non ho fatto funzionare in problemi finora, ma io sono preoccupato del fatto che se ho una grande quantità di download paralleli, tutta questa operazione potrebbe causare un collo di bottiglia. –
Improbabile, ma possibile. Puoi ottimizzare usando un 'char buffer [4098]' per evitare che 'malloc() s' sia coinvolto nella creazione di' QByteArray'. C'è anche 'QVarLengthArray'. –
sì, è quello che ho fatto con il char array locale. Grazie per l'aiuto. –