2008-09-20 25 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日) 。