带 XML-RPC 的 Python HTTP 服务器

0 投票
3 回答
930 浏览
提问于 2025-04-15 14:55

我有一台服务器,需要同时处理HTTP请求和XML-RPC请求。目前我有一个SimpleXMLRPCServer的实例,还有一个BaseHTTPServer.HTTPServer的实例,它们在不同的端口上运行。我想把这两个服务都放在同一个端口上。

我觉得可以修改CGIXMLRPCRequestHandler这个类,让它也能处理一些特定路径的自定义HTTP请求,或者根据请求的路径使用不同的请求处理器。不过,我不太确定这样做的最简单方法是什么。

3 个回答

0

最简单的方法是这样的(在Python 3.3上测试过,但在2.x版本上也应该能用,只需要稍微修改一下导入的部分):

from http.server import SimpleHTTPRequestHandler
from xmlrpc.server import SimpleXMLRPCRequestHandler,SimpleXMLRPCServer

class MixRequestHandler(SimpleHTTPRequestHandler,SimpleXMLRPCRequestHandler):
    pass

srv=SimpleXMLRPCServer(("localhost",8080),MixRequestHandler)
#normal stuff for SimpleXMLRPCServer
0

有没有什么理由不在前面用一个真正的网页服务器,并把你现在用的两个端口的地址进行重写呢?这样做从长远来看会让事情变得简单很多。

0

直接在你自己的请求处理程序中使用 SimpleXMLRPCDispatcher 类。

撰写回答