2009-10-08 3 views
0

HTTP 및 XML-RPC 요청에 응답해야하는 서버가 있습니다. 지금은 SimpleXMLRPCServer의 인스턴스와 다른 포트에서 실행되는 사용자 정의 요청 처리기가있는 BaseHTTPServer.HTTPServer의 인스턴스가 있습니다. 단일 포트에서 두 서비스를 모두 실행하고 싶습니다.XML-RPC가있는 Python HTTP 서버

CGIXMLRPCRequestHandler 클래스를 수정하여 일부 경로에서 사용자 지정 HTTP 요청을 제공하거나 또는 대체로 요청 된 경로를 기반으로 여러 요청 처리기를 사용할 수 있어야한다고 생각합니다. 그래도이 일을하는 가장 깨끗한 방법이 무엇인지는 모르겠다.

답변

0

자신의 요청 처리기에서 직접 SimpleXMLRPCDispatcher 클래스를 사용하십시오.

+0

감사합니다. 작동하는 것처럼 보입니다! 나중에 참조 할 수 있도록 _marshaled_dispatch 메소드가 정말 유용했습니다. –

0

URL을 사용하여 실제 웹 서버를 실행하지 않고 현재 사용중인 두 포트로 다시 쓰지 않는 이유가 있습니까? 장기적으로 인생을 훨씬 쉽게 만들어 줄 것입니다.

+0

내가 그렇게 확실히 너무 것 독립형 웹 서버를 필요로 독립형 데스크톱 응용 프로그램을 쓰고 있어요 사용자가 구성 할 수있는 많은 작업. –

0

가장 간단한 방법은 (파이썬 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