【问题标题】:XML-RPC: best way to handle 64-bit values?XML-RPC:处理 64 位值的最佳方式?
【发布时间】:2010-09-11 13:54:09
【问题描述】:

所以官方的 XML-RPC 标准不支持 64 位值。但在现代,64 位值越来越普遍。

您如何处理这些问题?最常见的 XML-RPC 扩展是什么?有哪些语言绑定?我对 Python 和 C++ 特别感兴趣,但所有信息都非常感谢。

【问题讨论】:

    标签: c++ python 64-bit xml-rpc


    【解决方案1】:

    使用“i8”作为数据类型变得越来越普遍。我最近将它添加到我的 Perl XML-RPC 模块 (http://metacpan.org/pod/RPC::XML) 中,以响应需要它以便与用 Java 编写的服务器一起工作的一大群人的请求。我不知道服务器使用了什么工具包,但它已经接受了 i8 作为一种类型。

    我觉得仍然需要解决的一件事是,“i4”的“int”别名是否也应该接受 i8,就像它目前接受 i4 的方式一样。或者,就此而言,如果类型为 i8 的参数应该安静地接受类型为 i4 的输入。当您不需要 SOAP 的所有覆盖范围时,XML-RPC 作为一种轻量级、低开销的协议具有很大的潜力,但它在 REST 和 SOAP 之间的宗教战争中经常被忽视。

    XML-RPC 需要一些更新和修改,如果我们可以让原作者允许的话......

    【讨论】:

      【解决方案2】:

      XML-RPC.NET 自 2.5.0 版(2010 年 9 月 5 日)起支持

      【讨论】:

        【解决方案3】:

        有些库确实支持 64 位扩展,但似乎没有标准。例如,xmlrpc-c 有一个所谓的 i8,但它不适用于 python(至少默认情况下不是)。

        我会推荐:

        • 手动将整数转换为字符串并按原样发送。 XMLRPC 无论如何都会将其转换为字符串,所以我认为这是合理的。
        • 将其拆分为两个 32 位整数并按原样发送。

        【讨论】:

          【解决方案4】:

          我不知道如何扩展 XMLRPC,但我确实找到了关于该主题的 this mail

          在 XML-RPC 中,一切都被传输 作为一个字符串,所以我不认为 选择真的那么糟糕——除了 额外的笨拙课程 用于调用显式转换 功能。

          但是不,XML-RPC 没有数据 上面可以表示整数的类型 2**32。如果你能接受失败 精度,你可以使用双打(但 你仍然需要转换 明确地在发件人身上)。

          【讨论】:

            猜你喜欢
            • 2013-11-27
            • 1970-01-01
            • 2011-01-28
            • 1970-01-01
            • 1970-01-01
            • 2011-01-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多