当前位置: 首页 > 工具软件 > XMLRPC++ > 使用案例 >

java的xmlrpc_xmlrpc

解高昂
2023-12-01

XML-RPC type

Python type

boolean

int, i1, i2, i4, i8 or biginteger

int in range from -2147483648 to 2147483647. Values get the tag.

double or float

float. Values get the tag.

string

array

list or tuple containing conformable elements. Arrays are returned as lists.

struct

dict. Keys must be strings, values may be any conformable type. Objects of user-defined classes can be passed in; only their __dict__ attribute is transmitted.

dateTime.iso8601

DateTime or datetime.datetime. Returned type depends on values of use_builtin_types and use_datetime flags.

base64

Binary, bytes or bytearray. Returned type depends on the value of the use_builtin_types flag.

nil

The None constant. Passing is allowed only if allow_none is true.

bigdecimal

decimal.Decimal. Returned type only.

server.py

#

import sys

import datetime

from xmlrpc.server import SimpleXMLRPCServer

from xmlrpc.server import SimpleXMLRPCRequestHandler

import xmlrpc.client

class RequestHandler(SimpleXMLRPCRequestHandler):

rpc_paths = ('/RPC2',)

server = SimpleXMLRPCServer(('localhost', 8000), requestHandler=RequestHandler, allow_none=True)

server.register_introspection_functions()

server.register_function(pow)

def adder_function(x, y):

return x + y

server.register_function(adder_function, 'add')

@server.register_function

def do_sth(x, y, z=None):

a = ''

if z:

a = x + y + z

else:

a = x + y

sys.stdout.write('okok\n')

class MyFuncs:

def mul(self, x, y):

return x * y

server.register_instance(MyFuncs())

@server.register_function

def today():

return xmlrpc.client.DateTime(datetime.datetime.today())

#return datetime.datetime.today()

server.serve_forever()

client.py

#

import datetime

import xmlrpc.client

s = xmlrpc.client.ServerProxy('http://localhost:8000')

#print(s.pow(2,3)) # Returns 2**3 = 8

print(s.add(2,3)) # Returns 5

#print(s.mul(5,2)) # Returns 5*2 = 10

try:

res = s.do_sth(9, 3, 8) # Returns 5

except xmlrpc.client.Fault as err:

print('A fault occurred')

print("Fault code: %d" % err.faultCode)

print("Fault string: %s" % err.faultString)

today = s.today()

converted = datetime.datetime.strptime(today.value, "%Y%m%dT%H:%M:%S")

print("Today: %s" % converted.strftime("%d.%m.%Y, %H:%M"))

#print(s.system.listMethods())

 类似资料: