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实现的简单文件传输服务器和客户端
Apr 08 Python
简化Python的Django框架代码的一些示例
Apr 20 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
python得到电脑的开机时间方法
Oct 15 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
python中有函数重载吗
May 28 Python
python爬虫要用到的库总结
Jul 28 Python
理解Django 中Call Stack机制的小Demo
Sep 01 Python
详解Python Celery和RabbitMQ实战教程
Jan 20 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
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
Javascript学习笔记 delete运算符
2011/09/13 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
Vue的Options用法说明
2020/08/14 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Python的高阶函数用法实例分析
2019/04/11 Python
python交易记录链的实现过程详解
2019/07/03 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
什么是Python变量作用域
2020/06/03 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
个人自荐材料
2014/05/23 职场文书
北京奥运会口号
2014/06/21 职场文书
音乐之声观后感
2015/06/04 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers