简单的HTTP XML网络服务
我有一个简单的HTML服务,是用Django开发的。你输入你的名字,它会把这个名字发送出去,然后返回一个值(男/女)。
我想把这个做成一个网络服务,但我不知道从哪里开始。
我想接受一个XML格式的请求,并提供一个XML格式的响应,就这些。
有没有人能给我一些建议?当你不知道自己在找什么的时候,谷歌搜索真的很困难。
2 个回答
2
你可能想要了解一下 Piston,这是一个可以把Django应用变成网络服务的框架。
1
请查看 Django书籍中的生成非HTML内容,里面有详细的说明。
其实,操作起来非常简单:
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数据,这段代码改编自 这个网站:
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数据。