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

C++ XML-RPC:处理64位值的最佳方法?,c++,python,64-bit,xml-rpc,C++,Python,64 Bit,Xml Rpc,因此,官方的XML-RPC标准不支持64位值。但在现代,64位值越来越普遍 你怎么处理这些?最常见的XML-RPC扩展是什么?有哪些语言绑定?我对Python和C++特别感兴趣,但是所有的信息都被理解了。 < P>我不知道XMLRPC是如何被扩展的,但是我发现了这个主题: 在XML-RPC中,所有内容都被传输 作为一根弦,所以我不这么认为 选择真的那么糟糕——除了 当然是额外的笨拙 用于调用显式转换 功能 但是不,XML-RPC没有数据存储 可以表示上面的整数的类型 2**32. 如果你能接受失

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


你怎么处理这些?最常见的XML-RPC扩展是什么?有哪些语言绑定?我对Python和C++特别感兴趣,但是所有的信息都被理解了。

< P>我不知道XMLRPC是如何被扩展的,但是我发现了这个主题:

在XML-RPC中,所有内容都被传输 作为一根弦,所以我不这么认为 选择真的那么糟糕——除了 当然是额外的笨拙 用于调用显式转换 功能

但是不,XML-RPC没有数据存储 可以表示上面的整数的类型 2**32. 如果你能接受失败 精度,可以使用双精度(但 你仍然需要改变信仰 在发送方上显式地)


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

我建议:

  • 手动将整数转换为字符串,并将其作为字符串发送。XMLRPC无论如何都会将其转换为字符串,所以我认为这是合理的
  • 将其拆分为两个32位整数并按此方式发送
    • 使用“i8”作为数据类型正变得越来越普遍。我最近将此添加到PerlXML-RPC模块()中,以响应一个大型组的请求,该组需要此模块才能使用Java编写的服务器。我不知道服务器使用了什么工具包,但它已经接受i8作为一种类型

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

      XML-RPC需要一些更新和修订,如果我们能让原始作者允许的话…

      自2.5.0版(2010年9月5日)以来一直支持