HTTP-сервер Python с XML-RPC - PullRequest
       12

HTTP-сервер Python с XML-RPC

0 голосов
/ 08 октября 2009

У меня есть сервер, который должен отвечать на запросы HTTP и XML-RPC. Прямо сейчас у меня есть экземпляр SimpleXMLRPCServer и экземпляр BaseHTTPServer.HTTPServer с пользовательским обработчиком запросов, работающий на разных портах. Я хотел бы запустить обе службы на одном порту.

Я думаю, что должна быть возможность изменить класс CGIXMLRPCRequestHandler, чтобы он также обслуживал пользовательские HTTP-запросы по некоторым путям или, альтернативно, использовать несколько обработчиков запросов в зависимости от того, какой путь запрашивается. Я не совсем уверен, что самый чистый способ сделать это, однако.

Ответы [ 3 ]

0 голосов
/ 09 октября 2009

Используйте SimpleXMLRPCDispatcher класс прямо из вашего собственного обработчика запросов.

0 голосов
/ 30 января 2014

Самый простой способ (протестирован для 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
0 голосов
/ 08 октября 2009

Есть ли причина не запускать реальный веб-сервер с перезаписью URL на два порта, которые вы сейчас используете? Это сделает жизнь намного проще в долгосрочной перспективе

...