2009-10-08 45 views
0

我有一台服务器必须响应HTTP和XML-RPC请求。现在我有一个SimpleXMLRPCServer实例,以及一个BaseHTTPServer.HTTPServer实例,它具有一个定制的请求处理程序,运行在不同的端口上。我想在单个端口上运行这两种服务。使用XML-RPC的Python HTTP服务器

我认为应该可以修改CGIXMLRPCRequestHandler类以在一些路径上也提供自定义HTTP请求,或者可以根据请求的路径使用多个请求处理程序。不过,我不确定最干净的方法。

回答

0

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

+0

谢谢,这似乎会工作!为了将来的参考,_marshaled_dispatch方法是非常有用的 – 2009-10-11 02:21:49

0

有没有原因不运行一个真正的网络服务器与URL重写到你现在正在使用的两个端口?从长远来看,这将使生活变得更容易

+0

我正在写一个独立的桌面应用程序,所以需要一个独立的Web服务器肯定是太许多工作供用户配置。 – 2009-10-11 01:23:25

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