Простой XML через http веб-сервис - PullRequest
2 голосов
/ 13 мая 2010

У меня есть простой html-сервис, разработанный в django. Вы вводите свое имя - оно публикует это и возвращает значение (мужской / женский).

Мне нужно предложить это как веб-сервис. Понятия не имею, с чего начать.

Я хочу принять запрос xml и предоставить ответ xml - вот и все.

Может ли кто-нибудь дать мне какие-либо указания - поискать в Google трудно, когда вы не знаете, что ищете.

Ответы [ 2 ]

2 голосов
/ 13 мая 2010

Возможно, вам нужен Piston , который является основой для представления приложений Django в качестве веб-сервисов.

1 голос
/ 13 мая 2010

См. Инструкции Создание не HTML-контента в книге django.

По сути, это так просто:

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')

Edit:

Вы можете отправить сообщение с установленным 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...