XML-RPC -- python

本文介绍了XML-RPC的基本概念,它是一种基于HTTP和XML的远程过程调用协议。在Python中,XML-RPC提供了Server(SimpleXMLRPCServer)和Client(xmlrpclib)的实现。Server端通过注册函数供Client调用,而Client则通过HTTP POST请求调用Server上的方法。在多客户端请求时,Server端可能需要考虑多线程支持。
摘要由CSDN通过智能技术生成

1. XML-RPC

RPC (Remote Procedure Call) 远程过程调用, 提供一种“远程接口”来供外部系统调用, 常常用于不同平台,不同架构的系统之间的相互调用, 减少代码的冗余, 便于管理。

XML-RPC 是通过HTTP传输协议,XML作为传送信息的编码格式, 尽可能保持简单, 但同时能够传送,处理, 返回复杂的数据结构。因为是基于HTTP和XML, 所以兼容性比较好, 能够跨域不同的操作系统, 不同的编程语言, 但同时速度就会慢下来。

XML-RPC 一般有分为Server 和Client 端,  Client 向Server发送一个请求体为XML的HTTP POST请求, 被调用的方法在Server端将执行结果以XML格式返回。

Client --> xmlrpclib, 这个模块是用来调用注册在XML-RPC服务端的函数

Server --> SimpleXMLRPCServer, 这个模块用来构造一个最基本的XML-RPC服务器框架


2. XML-RPC 简单Python实现

Server 端:由于SimpleXMLRPCServer是单线程的,所以当多个客户端同时请求的时候, 就需要用到多线程。

#/usr/bin/env python3

import os
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SocketServer import ThreadingMixIn

def pwd():
    return os.getcwd()

def ls(directory=None):
    if directory is None:
        directory = pwd()
    try:
        return os.listdir(directory)
    except OSError as e:
        return e

def cd(directory):
    try:
        os.chdir(directory)
    except OSError as e:
        return e

    return 'change current working directory to: %s' % (directory)

def mkdir(directory):
    try:
        os.mkdir(directory)
    except OSError as e:
        return e
    else:
        return 'successfully create directory: %s' % directory

def cp(src, dest)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值