意外回复签名:得到“oasv”,预期“(oasv)”

Posted

技术标签:

【中文标题】意外回复签名:得到“oasv”,预期“(oasv)”【英文标题】:Unexpected reply signature: got "oasv", expected "(oasv)"意外回复签名:得到“oasv”,预期“(oasv)” 【发布时间】:2014-05-19 15:23:47 【问题描述】:

使用 C++/QtDBus。 我正在尝试从 DBus 调用中获得回复,该函数描述为:

object, dict PullAll(string targetfile, dict filters).

我注册了(qDBusRegisterMetaType)一个类型定义为:typedef QPair< QDBusObjectPath, QVariantMap > Transfer;QDBusPendingCallWatcher 处理程序中我正在做:

QDBusPendingReply<Transfer> reply = *pwatcher;

我得到一个错误:

意外回复签名:得到"oasv",预期"(oasv)"

怎么了? “(oasv)”中的括号是什么?

【问题讨论】:

也许oasv 被包裹在一个数组中? 【参考方案1】:

我认为整个消息需要包装在一个结构中。至少你有正确的签名,否则会得到回应。

arrays: []
dict entries: 
structs: ()

我对 QtDbus 不是很熟悉,但是查看 QDbusArgument 类的页面,您可能必须这样做:

argument.beginStructure();
argument << mystruct.objectpath << mystruct.array;
argument.endStructure();

【讨论】:

以上是关于意外回复签名:得到“oasv”,预期“(oasv)”的主要内容,如果未能解决你的问题,请参考以下文章

sap发货过账生成的记账凭证是

解析错误:意外的令牌,预期的“...”

如何解决“批量更新从更新返回意外的行数;实际行数:0;预期:1”问题?

Stripe webhook 错误:未找到与有效负载的预期签名匹配的签名

休眠 - 批量更新从更新返回意外的行数:0 实际行数:0 预期:1

解析错误:意外的令牌,预期的“,”和语法错误:意外的令牌'['[重复]