Pregunta

Por tanto, el estándar oficial XML-RPC no admite valores de 64 bits.Pero en estos tiempos modernos, los valores de 64 bits son cada vez más comunes.

¿Cómo manejas esto?¿Qué extensiones XML-RPC son las más comunes?¿Qué enlaces de idiomas existen?Estoy especialmente interesado en Python y C++, pero se agradece toda la información.

¿Fue útil?

Solución

De hecho, algunas bibliotecas admiten extensiones de 64 bits, pero no parece haber un estándar. xmlrpc-c, por ejemplo, tiene un llamado i8 pero no funciona con Python (al menos no de forma predeterminada).

Yo recomendaría a:

  • Convierta el número entero en cadena manualmente y envíelo como tal.XMLRPC lo convertirá en una cadena de todos modos, por lo que diría que esto es razonable.
  • Divídelo en dos enteros de 32 bits y envíalo como tal.

Otros consejos

El uso de "i8" como tipo de datos es cada vez más común.Recientemente agregué esto a mi módulo Perl XML-RPC (http://metacpan.org/pod/RPC::XML) en respuesta a una solicitud de un grupo grande que lo necesitaba para trabajar con un servidor escrito en Java.No sé qué kit de herramientas utilizó el servidor, pero ya aceptaba i8 como tipo.

Una cosa que creo que aún debe abordarse es si el alias "int" para "i4" también debería aceptar i8, como lo hace actualmente con i4.O, de hecho, si un parámetro escrito como i8 debería aceptar silenciosamente una entrada escrita como i4.XML-RPC tiene un gran potencial como protocolo liviano y de bajo costo, útil cuando no se necesita toda la cobertura de SOAP, pero a menudo se pasa por alto en las guerras religiosas entre REST y SOAP.

XML-RPC necesita algunas actualizaciones y revisiones, si pudiéramos conseguir que el autor original lo permitiera...

No sé nada sobre cómo se podría extender XMLRPC pero encontré este correo sobre el tema:

En XML -RPC, todo se transmite como una cadena, por lo que no creo que la elección sea realmente tan mala, excepto, por supuesto, para la torpeza adicional para invocar funciones de conversión explícitas.

Pero no, XML-RPC no tiene un tipo de datos que pueda representar enteros superiores a 2 ** 32.Si puede aceptar perder precisión, puede usar dobles (pero aún así tendrá que convertir explícitamente en el remitente).

XML-RPC.NET ha soportado <i8> desde la versión 2.5.0 (5 de septiembre de 2010).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top