XML-RPC:处理64位值的最佳方法?

时间:2008-09-20 08:27:11

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

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

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

4 个答案:

答案 0 :(得分:7)

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

我会建议:

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

答案 1 :(得分: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 :(得分:0)

我对XMLRPC的扩展方式一无所知,但我确实找到了关于这个主题的this mail

  

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

     

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

答案 3 :(得分:0)

XML-RPC.NET已支持< i8>自2.5.0发布(2010年9月5日)。