25QNetworkReplyDataImpl::QNetworkReplyDataImpl(QObject *parent,
const QNetworkRequest &req,
const QNetworkAccessManager::Operation op)
26 : QNetworkReply(*
new QNetworkReplyDataImplPrivate(), parent)
28 Q_D(QNetworkReplyDataImpl);
33 QNetworkReply::open(QIODevice::ReadOnly);
38 if (qDecodeDataUrl(url, mimeType, payload)) {
39 qint64 size = payload.size();
41 h.replaceOrAppend(QHttpHeaders::WellKnownHeader::ContentType, mimeType);
42 h.replaceOrAppend(QHttpHeaders::WellKnownHeader::ContentLength, QByteArray::number(size));
43 setHeaders(
std::move(h));
45 QMetaObject::invokeMethod(
this,
"metaDataChanged", Qt::QueuedConnection);
47 d->decodedData.setData(payload);
48 d->decodedData.open(QIODevice::ReadOnly);
50 QMetaObject::invokeMethod(
this,
"downloadProgress", Qt::QueuedConnection,
51 Q_ARG(qint64,size), Q_ARG(qint64, size));
52 QMetaObject::invokeMethod(
this,
"readyRead", Qt::QueuedConnection);
53 QMetaObject::invokeMethod(
this,
"finished", Qt::QueuedConnection);
56 const QString msg = QCoreApplication::translate(
"QNetworkAccessDataBackend",
57 "Invalid URI: %1").arg(url.toString());
58 setError(QNetworkReply::ProtocolFailure, msg);
59 QMetaObject::invokeMethod(
this,
"errorOccurred", Qt::QueuedConnection,
60 Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ProtocolFailure));
61 QMetaObject::invokeMethod(
this,
"finished", Qt::QueuedConnection);