diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2014-01-13 00:07:59 (GMT) |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2014-01-13 00:07:59 (GMT) |
commit | 95be7ff911536ad6c40b5ae47fca0d3492836832 (patch) | |
tree | 58fb02625bf5d6202ae157854a3aa10f34111240 /Lib/xmlrpc | |
parent | 8666e65206300b1719f4b2599939b7acf824b357 (diff) | |
parent | 939e2db48dc3bcb159486b599901b694d2d57f89 (diff) | |
download | cpython-95be7ff911536ad6c40b5ae47fca0d3492836832.zip cpython-95be7ff911536ad6c40b5ae47fca0d3492836832.tar.gz cpython-95be7ff911536ad6c40b5ae47fca0d3492836832.tar.bz2 |
merge from 3.3
Issue #19082: Working xmlrpc.server and xmlrpc.client examples. Both in modules and in documentation.
Diffstat (limited to 'Lib/xmlrpc')
-rw-r--r-- | Lib/xmlrpc/client.py | 10 | ||||
-rw-r--r-- | Lib/xmlrpc/server.py | 14 |
2 files changed, 19 insertions, 5 deletions
diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py index 9e0f069..1238b9b 100644 --- a/Lib/xmlrpc/client.py +++ b/Lib/xmlrpc/client.py @@ -1461,18 +1461,18 @@ if __name__ == "__main__": # simple test program (from the XML-RPC specification) - # server = ServerProxy("http://localhost:8000") # local server - server = ServerProxy("http://time.xmlrpc.com/RPC2") + # local server, available from Lib/xmlrpc/server.py + server = ServerProxy("http://localhost:8000") try: print(server.currentTime.getCurrentTime()) except Error as v: print("ERROR", v) - # The server at xmlrpc.com doesn't seem to support multicall anymore. multi = MultiCall(server) - multi.currentTime.getCurrentTime() - multi.currentTime.getCurrentTime() + multi.getData() + multi.pow(2,9) + multi.add(1,2) try: for response in multi(): print(response) diff --git a/Lib/xmlrpc/server.py b/Lib/xmlrpc/server.py index d914282..304e218 100644 --- a/Lib/xmlrpc/server.py +++ b/Lib/xmlrpc/server.py @@ -960,10 +960,24 @@ class DocCGIXMLRPCRequestHandler( CGIXMLRPCRequestHandler, if __name__ == '__main__': + import datetime + + class ExampleService: + def getData(self): + return '42' + + class currentTime: + @staticmethod + def getCurrentTime(): + return datetime.datetime.now() + server = SimpleXMLRPCServer(("localhost", 8000)) server.register_function(pow) server.register_function(lambda x,y: x+y, 'add') + server.register_instance(ExampleService(), allow_dotted_names=True) + server.register_multicall_functions() print('Serving XML-RPC on localhost port 8000') + print('It is advisable to run this example server within a secure, closed network.') try: server.serve_forever() except KeyboardInterrupt: |