2010-05-13 20 views
2

我有一个简单的html服务,在django开发。 你输入你的名字 - 它发布这个,并返回一个值(男/女)。通过http网络服务的简单XML

我需要将此作为Web服务。我不知道从哪里开始。

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

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

+0

在“SOAP”上搜索。 – 2010-05-13 10:35:52

回答

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来获得。

+0

我不担心生成非html内容。接受一个XML请求是我想要做的。 – Mark 2010-05-13 11:24:43

+0

发送一个帖子,将变量xml_data设置为你的xml数据。以utf-8编码。 – 2010-05-13 12:39:11

2

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

+0

是啊,绝对+1活塞 – 2010-05-13 12:59:25