通过HTTP使用python接收XML文档

时间:2010-05-25 11:00:06

标签: python xml http

我想在python中做一个非常简单的web服务器,能够通过HTTP接收XML文档,然后作为响应XML文档发送。

你有什么例子吗?

了解如何安排工作...

非常感谢!

更新:

我需要这样的东西:

客户端使用xml文档发帖: <请求> <名称>&加LT; /名称> < PARAM→2< / PARAM> < PARAM→3< / PARAM> < /请求>'

python服务器回答: <响应> <结果> OK< /导致> <结果大于5< /结果> < / response>

你有这样的事情的例子吗?

2 个答案:

答案 0 :(得分:1)

您可以使用XMLRPC:

SimpleXMLRPCServer示例(来自Python文档)

服务器代码:

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)

# Create server
server = SimpleXMLRPCServer(("localhost", 8000),
                            requestHandler=RequestHandler)
server.register_introspection_functions()

# Register pow() function; this will use the value of
# pow.__name__ as the name, which is just 'pow'.
server.register_function(pow)

# Register a function under a different name
def adder_function(x,y):
    return x + y
server.register_function(adder_function, 'add')

# Register an instance; all the methods of the instance are
# published as XML-RPC methods (in this case, just 'div').
class MyFuncs:
    def div(self, x, y):
        return x // y

server.register_instance(MyFuncs())

# Run the server's main loop
server.serve_forever()

以下客户端代码将调用前一个服务器提供的方法:

import xmlrpclib

s = xmlrpclib.ServerProxy('http://localhost:8000')
print s.pow(2,3)  # Returns 2**3 = 8
print s.add(2,3)  # Returns 5
print s.div(5,2)  # Returns 5//2 = 2

# Print list of available methods
print s.system.listMethods()

答案 1 :(得分:0)

标准库示例:

或者使用一些轻量级的Web框架: