コード例 #1
0
    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();
    }
コード例 #2
0
ファイル: qjsonrpcmessage.cpp プロジェクト: LiveFly/liteide
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;
}
コード例 #3
0
ファイル: qjsonrpcsocket.cpp プロジェクト: yamamushi/qjsonrpc
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;
}