因为跨域xmlrpc请求在JavaScript中是不可能的 我需要创建一个Python应用程序,它通过HTTP公开一些HTML,并在同一个域上公开XML-RPC服务。在
在python中创建HTTP请求处理程序和SimpleXMLRPCServer非常简单, 但它们都必须监听不同的端口,这意味着不同的域。在
有没有一种方法可以在本地主机上的单个端口上创建侦听器 并公开HTTPRequestHandler和XMLRPCRequest处理程序?在
现在我有两种不同的服务:
httpServer = HTTPServer(('localhost',8001), HttpHandler);
xmlRpcServer = SimpleXMLRPCServer(('localhost',8000),requestHandler=RequestHandler)
更新
使用
HTTPServer
来提供内容不是一个好主意。您应该使用像Apache这样的web服务器,并将Python用作CGI(或更高级的接口,如mod_wsgi
)。在然后,web服务器在一个端口上运行,您可以直接在web服务器上运行HTML,并在Python中编写任意数量的CGI脚本,例如使用
CGIXMLRPCRequestHandler
为XMLRPC请求编写的CGI脚本。在根据韦业栋的回答,解决方案其实相当简单:
我所要做的就是继续使用SimpleXMLRPCServer实例, 但是修改处理程序:
这将导致处理程序响应GET请求和原始POST(XML-RPC)请求。在
它们都是
SocketServer.TCPServer
的子类。必须有某种方法来重构它们,以便once服务器实例可以分派给两者。在一个更简单的选择可能是将
HTTPServer
放在前面,并将xmlrpc代理到SimpleXMLRPCServer
实例。在相关问题 更多 >
编程相关推荐