我正在为我正在处理的应用程序设置RESTful请求,我想在uri中使用xml作为请求,而不是允许客户端在URI本身中提供参数。
我希望像这样拥有URI:someurl / service / request
而不是:someurl / service / request?id = {id}& name = {name}
我一直在网上搜索,看看创建POST请求时的约定。任何人都可以帮我指出如何设置这个POST请求允许客户端使用xml的正确方向?
不确定它是否相关,但我正在使用SPRING 3.0框架在JAVA中设置服务器端代码。如果我需要提供更多详细信息,请告诉我。
感谢您的帮助!!
答案 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。