python使用xmlrpc实例讲解


Posted in Python onDecember 17, 2013

RPC是Remote Procedure Call的缩写,翻译成中文就是远程方法调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。

XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。

它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。
这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。
Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。
Python下的XML-RPC:

1、类库:xmlrpclib    一般使用在客户端,这个模块用来调用注册在XML-RPC服务器端的函数,xmlrpclib并不是一个类型安全的模块,无法抵御恶意构造的数据,这方面的一些处理工作需要交给开发者自己。

2、类库:SimpleXMLRPCServer   一般是用在服务器端,这个模块用来构造一个最基本的XML-RPC服务器框架

3、构造一个基本的XML-RPC Server:

from SimpleXMLRPCServer import SimpleXMLRPCServer
def is_even(n):
    return n%2 == 0
server = SimpleXMLRPCServer(("localhost", 8000))#确定URL和端口
print "Listening on port 8000..."
server.register_function(is_even, "is_even") #注册is_even函数
server.serve_forever()#启动服务器,并使其对这个连接可用

4、构造一个基本的XML-RPC Client:

import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))#客户端调用XML-RPC函数
print "100 is even: %s" % str(proxy.is_even(100))
Python 相关文章推荐
Python 时间处理datetime实例
Sep 06 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
Python中的ConfigParser模块使用详解
May 04 Python
Python读取Excel的方法实例分析
Jul 11 Python
Python爬虫爬取美剧网站的实现代码
Sep 03 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
python sqlite的Row对象操作示例
Sep 11 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
Sep 20 Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 Python
Python 抓取数据存储到Redis中的操作
Jul 16 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
python三元运算符实现方法
Dec 17 #Python
用python写asp详细讲解
Dec 16 #Python
python模块restful使用方法实例
Dec 10 #Python
python解析模块(ConfigParser)使用方法
Dec 10 #Python
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 #Python
python socket网络编程步骤详解(socket套接字使用)
Dec 06 #Python
python3图片转换二进制存入mysql
Dec 06 #Python
You might like
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
用PHP编写PDF文档生成器
2006/10/09 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
javascript控制台详解
2015/06/25 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
js实现登录验证码
2016/12/22 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Python 如何批量更新已安装的库
2020/05/26 Python
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
自我鉴定书范文
2013/10/02 职场文书
计算机网络专业个人的自我评价
2013/10/17 职场文书
安全横幅标语
2014/06/09 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL