使用xml设置Restful POST请求

时间:2009-11-02 20:50:24

标签: java xml rest

我正在为我正在处理的应用程序设置RESTful请求,我想在uri中使用xml作为请求,而不是允许客户端在URI本身中提供参数。

我希望像这样拥有URI:someurl / service / request

而不是:someurl / service / request?id = {id}& name = {name}

我一直在网上搜索,看看创建POST请求时的约定。任何人都可以帮我指出如何设置这个POST请求允许客户端使用xml的正确方向?

不确定它是否相关,但我正在使用SPRING 3.0框架在JAVA中设置服务器端代码。如果我需要提供更多详细信息,请告诉我。

感谢您的帮助!!

2 个答案:

答案 0 :(得分:2)

您可以将参数放入请求正文中。它们的格式与将其附加到URL的格式相同。例如:

POST /path/script.cgi HTTP/1.0
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

home=Cosby&favorite+flavor=flies

您可以通过以下方式轻松地在原型中实现:

new Ajax.Request('someurl/service', {
method: 'post',
postBody: 'home=Cosby&favorite+flavor=flies',
encoding: 'UTF-8'});

要添加您的xml文件,只需将其附加到您的postBody,并使用某种分隔符,以便您的cgi知道参数的结束位置和xml的开始位置。

我认为这就是你所寻找的,希望它有所帮助。

答案 1 :(得分:1)

你可以在POST身体中传递任何你想要的东西。因此,如果要使用XML,则可以使用XML。例如:

POST /car
Content-Type: text/xml
<car>
   <date>10-10-2007<date>
   <type>Corvette</type>
</car>

HTTP/1.1 201 CREATED

我认为所有REST API框架都允许您在客户端请求和服务器响应中轻松指定XML。有关示例,请参阅Restlet的quick start