2008-09-20 63 views
4

所以官方的XML-RPC标准不支持64位值。但在现代这些时代,64位值越来越普遍。XML-RPC:处理64位值的最佳方法?

你如何处理这些?哪些XML-RPC扩展是最常见的?那里有什么语言绑定?我特别感兴趣的是Python和C++,但所有的信息都是值得赞赏的。

回答

7

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

我会建议要么:

  • 手工转换整数串并把它作为这样。无论如何,XMLRPC会将其转换为字符串,所以我会说这是合理的。
  • 将它分成两个32位整数并发送。
0

我不知道如何XMLRPC可以扩展什么,但我没有找到this mail有关的主题:

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

但是不,XML-RPC没有可以表示大于 2 ** 32的整数的数据 。如果您可以接受丢失 精度,则可以使用双精度(但 您仍然必须在发件人上明确转换 )。

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是需要一些更新和修订,如果我们能够得到原作者允许它...

0

XML-RPC.NET一直支持< 6-18 >自发布2.5.0(2010年9月5日) 。