XML-RPC:最好的方式来处理的64位的价值观?
题
所以官方XML-RPC标准不支持64位的价值观。但在这些现代化的时代,64位值都越来越常见。
你怎么处理这些?什么XML-RPC扩展是最常见的?什么语言绑定在那里?我特别感兴趣Python和C++,但是所有的信息表示赞赏。
解决方案
一些图书馆的支持64位的扩展,的确,但似乎并没有被一个标准。 xmlrpc-c, 例如,有一个所谓的i8但是它不工作与python(至少是不通过默认)。
我会建议:
- 转换整数串通过手并把它作为这样的。XMLRPC将把这转换为字符串无论如何,所以我会说这是合理的。
- 打破它在两个32位整数,并把它作为这样的。
其他提示
使用<!>“i8 <!>”;随着数据类型变得越来越普遍。我最近将此添加到我的Perl XML-RPC模块( http://metacpan.org/pod/RPC :: XML )响应来自需要它的大型组的请求,以便与使用Java编写的服务器一起工作。我不知道服务器使用了什么工具包,但它已经接受了i8作为一种类型。
我觉得还有一件事需要解决,那就是<!> quot; int <!> quot; <!>的别名; i4 <!>;也应该接受i8,它目前的方式是i4。或者,就此而言,如果输入为i8的参数应该安静地接受输入为i4的输入。当你不需要SOAP的所有覆盖范围时,XML-RPC作为一种轻量级,低开销的协议具有很大的潜力,但在REST和SOAP之间的宗教战争中经常被忽略。
XML-RPC需要进行一些更新和修改,如果我们可以让原作者允许它......
我对XMLRPC的扩展方式一无所知,但我找到了这封邮件:
在XML-RPC中,一切都在传输 作为一个字符串,所以我不这么认为 选择真的那么糟糕 - 除了 当然是为了额外的笨拙 用于调用显式转换 功能
但不,XML-RPC没有数据 可以表示上面的整数的类型 2 ** 32。如果你能接受失败 精度,你可以使用双打(但是 你仍然需要转换 明确地发送者)。
XML-RPC.NET 支持<!> lt; i8 <!> gt;自2.5.0发布(2010年9月5日)。