[Python-checkins] cpython (2.7): Issue #19082: Working SimpleXMLRPCServer and xmlrpclib examples, both in
senthil.kumaran
python-checkins at python.org
Mon Jan 13 01:08:14 CET 2014
http://hg.python.org/cpython/rev/1730f4a97cbb
changeset: 88431:1730f4a97cbb
branch: 2.7
parent: 88425:40fb60df4755
user: Senthil Kumaran <senthil at uthcode.com>
date: Sun Jan 12 16:04:08 2014 -0800
summary:
Issue #19082: Working SimpleXMLRPCServer and xmlrpclib examples, both in modules and documentation.
files:
Doc/library/simplexmlrpcserver.rst | 32 ++++++++++++++++++
Lib/SimpleXMLRPCServer.py | 1 +
Lib/xmlrpclib.py | 15 ++------
Misc/NEWS | 3 +
4 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/Doc/library/simplexmlrpcserver.rst b/Doc/library/simplexmlrpcserver.rst
--- a/Doc/library/simplexmlrpcserver.rst
+++ b/Doc/library/simplexmlrpcserver.rst
@@ -197,6 +197,38 @@
# Print list of available methods
print s.system.listMethods()
+The following :class:`SimpleXMLRPCServer` example is included in the module
+`Lib/SimpleXMLRPCServer.py`::
+
+ server = SimpleXMLRPCServer(("localhost", 8000))
+ server.register_function(pow)
+ server.register_function(lambda x,y: x+y, 'add')
+ server.register_multicall_functions()
+ server.serve_forever()
+
+This demo server can be run from the command line as::
+
+ python -m SimpleXMLRPCServer
+
+Example client code which talks to the above server is included with
+`Lib/xmlrpclib.py`::
+
+ server = ServerProxy("http://localhost:8000")
+ print server
+ multi = MultiCall(server)
+ multi.pow(2, 9)
+ multi.add(5, 1)
+ multi.add(24, 11)
+ try:
+ for response in multi():
+ print response
+ except Error, v:
+ print "ERROR", v
+
+And the client can be invoked directly using the following command::
+
+ python -m xmlrpclib
+
CGIXMLRPCRequestHandler
-----------------------
diff --git a/Lib/SimpleXMLRPCServer.py b/Lib/SimpleXMLRPCServer.py
--- a/Lib/SimpleXMLRPCServer.py
+++ b/Lib/SimpleXMLRPCServer.py
@@ -704,4 +704,5 @@
server = SimpleXMLRPCServer(("localhost", 8000))
server.register_function(pow)
server.register_function(lambda x,y: x+y, 'add')
+ server.register_multicall_functions()
server.serve_forever()
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -1617,21 +1617,14 @@
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")
+ server = ServerProxy("http://localhost:8000")
print server
- try:
- print server.currentTime.getCurrentTime()
- except Error, v:
- print "ERROR", v
-
multi = MultiCall(server)
- multi.currentTime.getCurrentTime()
- multi.currentTime.getCurrentTime()
+ multi.pow(2, 9)
+ multi.add(5, 1)
+ multi.add(24, 11)
try:
for response in multi():
print response
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -35,6 +35,9 @@
Library
-------
+- Issue #19082: Working SimpleXMLRPCServer and xmlrpclib examples, both in
+ modules and documentation.
+
- Issue #13107: argparse and optparse no longer raises an exception when output
a help on environment with too small COLUMNS. Based on patch by
Elazar Gershuni.
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list