带 XML-RPC 的 Python HTTP 服务器
我有一台服务器,需要同时处理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
类。