Kaydet (Commit) 01109739 authored tarafından Senthil Kumaran's avatar Senthil Kumaran

Issue #19082: Working SimpleXMLRPCServer and xmlrpclib examples, both in modules and documentation.

üst e198692c
...@@ -197,6 +197,38 @@ server:: ...@@ -197,6 +197,38 @@ server::
# Print list of available methods # Print list of available methods
print s.system.listMethods() 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 CGIXMLRPCRequestHandler
----------------------- -----------------------
......
...@@ -704,4 +704,5 @@ if __name__ == '__main__': ...@@ -704,4 +704,5 @@ if __name__ == '__main__':
server = SimpleXMLRPCServer(("localhost", 8000)) server = SimpleXMLRPCServer(("localhost", 8000))
server.register_function(pow) server.register_function(pow)
server.register_function(lambda x,y: x+y, 'add') server.register_function(lambda x,y: x+y, 'add')
server.register_multicall_functions()
server.serve_forever() server.serve_forever()
...@@ -1617,21 +1617,14 @@ Server = ServerProxy ...@@ -1617,21 +1617,14 @@ Server = ServerProxy
if __name__ == "__main__": if __name__ == "__main__":
# simple test program (from the XML-RPC specification) server = ServerProxy("http://localhost:8000")
# server = ServerProxy("http://localhost:8000") # local server
server = ServerProxy("http://time.xmlrpc.com/RPC2")
print server print server
try:
print server.currentTime.getCurrentTime()
except Error, v:
print "ERROR", v
multi = MultiCall(server) multi = MultiCall(server)
multi.currentTime.getCurrentTime() multi.pow(2, 9)
multi.currentTime.getCurrentTime() multi.add(5, 1)
multi.add(24, 11)
try: try:
for response in multi(): for response in multi():
print response print response
......
...@@ -35,6 +35,9 @@ Core and Builtins ...@@ -35,6 +35,9 @@ Core and Builtins
Library 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 - Issue #13107: argparse and optparse no longer raises an exception when output
a help on environment with too small COLUMNS. Based on patch by a help on environment with too small COLUMNS. Based on patch by
Elazar Gershuni. Elazar Gershuni.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment