我有一个必须响应 HTTP 和 XML-RPC 请求的服务器。现在我有一个 SimpleXMLRPCServer 实例,以及一个带有自定义请求处理程序的 BaseHTTPServer.HTTPServer 实例,它们在不同的端口上运行。我想在一个端口上运行这两个服务。
我认为应该可以修改 CGIXMLRPCRequestHandler 类以在某些路径上也提供自定义 HTTP 请求,或者根据请求的路径使用多个请求处理程序。不过,我不确定最干净的方法是什么。
SimpleXMLRPCDispatcher
直接从您自己的请求处理程序中使用类。
是否有理由不在前面运行真正的网络服务器,并将 URL 重写到您现在正在使用的两个端口?从长远来看,这将使生活变得更加轻松
最简单的方法是(针对 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