xmlrpc将数据定义为xml格式,通过http协议进行远程传输,有了它客户端可以在远程服务器上调用带参方法。
在python下使用XML-RPC需要导入库:xmlrpc.server和xmlrpc.client。大致使用方法:在server端导入SimpleXMLRPCServer运行XMLRPC服务器,定义并注册函数;在client端导入xmlrpc.client,使用xmlrpc.client.ServerProxy连接到服务器,即可调用服务器端的函数了。
看一个简单的例子,实现在客户端打印“Hello World”功能:
-
- server
-
#!/usr/bin/python #-*- coding: utf-8 -*- from xmlrpc.server import SimpleXMLRPCServer def Hello(): return "Hello World" # 指定ip、port server = SimpleXMLRPCServer(("XXX.XXX.XX.XXX",3000)) # 注册函数 server.register_function(Hello, 'Hello') try: server.serve_forever() # 键入ctrl+c结束 except KeyboardInterrupt: pass
- client
-
#!/usr/bin/python #-*- coding: utf-8 -*- from xmlrpc.client server = xmlrpc.client.ServerProxy("http://XXX.XXX.XX.XXX:3000") # 调用服务器端函数 print(server.Hello())
运行之后可以看到server每次被访问会打印访问来源:
client输出结果:
xmlrpc.client和xmlrpc.server还有很多对象,具体可查看官方文档:https://docs.python.org/zh-cn/3.7/library/xmlrpc.html
基于xmlrpc,可以实现简单的文件系统操作指令,包括ls、mkdir、rmdir等,还可以实现文件互传功能。