2009-10-08 46 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