XML-RPC: лучший способ обработки 64-битных значений? - PullRequest
4 голосов
/ 20 сентября 2008

Так что официальный стандарт XML-RPC не поддерживает 64-битные значения. Но в наше современное время 64-битные значения становятся все более распространенными.

Как вы справляетесь с этим? Какие расширения XML-RPC являются наиболее распространенными? Какие языковые привязки есть? Я особенно заинтересован в Python и C ++, но вся информация ценится.

Ответы [ 4 ]

7 голосов
/ 20 сентября 2008

Некоторые библиотеки действительно поддерживают 64-битные расширения, но, похоже, не существует стандарта. Например, xmlrpc-c имеет так называемый i8, но он не работает с python (по крайней мере, по умолчанию).

Я бы порекомендовал либо:

  • Преобразовать целое число в строку вручную и отправить его как таковой. XMLRPC все равно преобразует его в строку, поэтому я бы сказал, что это разумно.
  • Разбейте его на два 32-битных целых числа и отправьте как таковое.
1 голос
/ 22 сентября 2008

Использование «i8» в качестве типа данных становится все более распространенным. Я недавно добавил это в свой модуль Perl XML-RPC (http://metacpan.org/pod/RPC::XML) в ответ на запрос большой группы, которая нуждалась в нем для работы с сервером, написанным на Java. Я не знаю, какой инструментарий на сервере используется, но он уже принимает i8 в качестве типа.

Одна вещь, которую я чувствую, все еще должна быть решена, должен ли псевдоним int для i4 также принимать i8, как это делает в настоящее время i4. Или, в этом отношении, если параметр, типизированный как i8, должен спокойно принять ввод, введенный как i4. XML-RPC имеет большой потенциал в качестве легкого и удобного протокола, когда вам не нужно полностью охватывать SOAP, но его часто упускают из виду в религиозных войнах между REST и SOAP.

XML-RPC нуждается в некотором обновлении и пересмотре, если бы мы могли просто заставить оригинального автора разрешить это ...

0 голосов
/ 27 марта 2011

XML-RPC.NET поддерживает с момента выпуска 2.5.0 (5 сентября 2010 г.).

0 голосов
/ 20 сентября 2008

Я не знаю ничего о том, как можно расширить XMLRPC, но я нашел это письмо о теме:

В XML-RPC все передается как строка, так что я не думаю, что выбор действительно так плох - кроме курс на дополнительную неуклюжесть для вызова явного преобразования функции.

Но нет, XML-RPC не имеет данных тип, который может представлять целые числа выше 2 ** 32. Если вы можете принять потерю Точность, вы можете использовать удваивается (но вам все равно придется конвертировать явно на отправителя).

...