User Tools

Site Tools


tanszek:oktatas:iss_t:xml-rpc

This is an old revision of the document!


Table of Contents

XML-RPC tutorial

Server

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
 
# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)
 
# Create server
with SimpleXMLRPCServer(('localhost', 8000),
                        requestHandler=RequestHandler) as server:
    server.register_introspection_functions()
 
    # Register pow() function; this will use the value of
    # pow.__name__ as the name, which is just 'pow'.
    server.register_function(pow)
 
    # Register a function under a different name
    def adder_function(x, y):
        return x + y
    server.register_function(adder_function, 'add')
 
    # Register an instance; all the methods of the instance are
    # published as XML-RPC methods (in this case, just 'mul').
    class MyFuncs:
        def mul(self, x, y):
            return x * y
 
    server.register_instance(MyFuncs())
 
    # Run the server's main loop
    server.serve_forever()

Client

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
 
# Print list of available methods
print(s.system.listMethods())
tanszek/oktatas/iss_t/xml-rpc.1683572660.txt.gz · Last modified: 2023/05/08 19:04 by knehez