void networkReplyError(QNetworkReply::NetworkError code) { Q_D(QJsonRpcHttpReply); QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); if (!reply) { qJsonRpcDebug() << Q_FUNC_INFO << "invalid reply"; return; } reply->deleteLater(); if (code == QNetworkReply::NoError) return; QJsonRpcMessage response = QJsonRpcMessage::fromJson(reply->readAll()); if (response.isValid()) { d->response = response; Q_EMIT messageReceived(response); } else { d->response = d->request.createErrorResponse(QJsonRpc::InternalError, QString("error with http request: %1").arg(reply->error()), reply->errorString()); } Q_EMIT finished(); }
QJsonRpcMessage QJsonRpcMessage::fromJson(const QByteArray &message) { QJsonRpcMessage result; QJsonParseError error; QJsonDocument document = QJsonDocument::fromJson(message, &error); if (error.error != QJsonParseError::NoError) { qJsonRpcDebug() << Q_FUNC_INFO << error.errorString(); return result; } if (!document.isObject()) { qJsonRpcDebug() << Q_FUNC_INFO << "invalid message: " << message; return result; } result.d->initializeWithObject(document.object()); return result; }
void QJsonRpcSocketPrivate::writeData(const QJsonRpcMessage &message) { Q_Q(QJsonRpcSocket); QJsonDocument doc = QJsonDocument(message.toObject()); #if QT_VERSION >= 0x050100 || QT_VERSION <= 0x050000 QByteArray data = doc.toJson(QJsonDocument::Compact); #else QByteArray data = doc.toJson(); #endif device.data()->write(data); qJsonRpcDebug() << "sending(" << q << "): " << data; }