我有一臺服務器必須響應HTTP和XML-RPC請求。現在我有一個SimpleXMLRPCServer實例,以及一個BaseHTTPServer.HTTPServer實例,它具有一個定製的請求處理程序,運行在不同的端口上。我想在單個端口上運行這兩種服務。使用XML-RPC的Python HTTP服務器
我認爲應該可以修改CGIXMLRPCRequestHandler類以在一些路徑上也提供自定義HTTP請求,或者可以根據請求的路徑使用多個請求處理程序。不過,我不確定最乾淨的方法。
我有一臺服務器必須響應HTTP和XML-RPC請求。現在我有一個SimpleXMLRPCServer實例,以及一個BaseHTTPServer.HTTPServer實例,它具有一個定製的請求處理程序,運行在不同的端口上。我想在單個端口上運行這兩種服務。使用XML-RPC的Python HTTP服務器
我認爲應該可以修改CGIXMLRPCRequestHandler類以在一些路徑上也提供自定義HTTP請求,或者可以根據請求的路徑使用多個請求處理程序。不過,我不確定最乾淨的方法。
直接從您自己的請求處理程序中使用SimpleXMLRPCDispatcher
類。
有沒有原因不運行一個真正的網絡服務器與URL重寫到你現在正在使用的兩個端口?從長遠來看,這將使生活變得更容易
我正在寫一個獨立的桌面應用程序,所以需要一個獨立的Web服務器肯定是太許多工作供用戶配置。 – 2009-10-11 01:23:25
簡單的方法是(測試的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
謝謝,這似乎會工作!爲了將來的參考,_marshaled_dispatch方法是非常有用的 – 2009-10-11 02:21:49