基于http Web服务的简单XML

时间:2010-05-13 10:27:59

标签: python xml django web-services

我有一个简单的html服务,在django中开发。 您输入您的姓名 - 发布此名称,并返回一个值(男/女)。

我需要将其作为一项网络服务。我不知道从哪里开始。

我想接受一个xml请求,并提供一个xml响应 - 就是这样。

任何人都可以给任何指针 - 当你不知道你在寻找什么时,谷歌搜索很难。

2 个答案:

答案 0 :(得分:2)

您可能需要Piston,这是将Django应用程序公开为Web服务的框架。

答案 1 :(得分:1)

有关说明,请参阅django手册中的Generating non-HTML content

基本上,它就像这样简单:

def get_data(request, xml_data):
    data = parse_xml_data(xml_data)
    return_data = create_xml_blob(data)
    return HttpResponse(return_data, mimetype='application/xml')

修改

您可以将包含xml_data的帖子发送到XML字符串,也可以发送XML请求。

以下是一些用于将XML数据发送到Web服务的代码,改编自this site

xml_data = """<?xml version="1.0" encoding="UTF-8"?>
<root>my data here</root>
"""

#construct and send the header

webservice = httplib.HTTP("example.com")
webservice.putrequest("POST", "/rcx-ws/rcx")
webservice.putheader("Host", "example.com")
webservice.putheader("User-Agent", "Python post")
webservice.putheader("Content-type", "text/xml; charset=\"UTF-8\"")
webservice.putheader("Content-length", "%d" % len(xml_data))
webservice.endheaders()
webservice.send(xml_data)

从django,您可以使用request.raw_post_data直接获取XML。