使用Restlet设置自定义内容范围标头

时间:2012-06-29 14:01:51

标签: java restlet restlet-2.0

我正在使用restlet 2.0.11通过REST-Web-Interface为基于Dojo的Web应用程序提供数据。

根据dojo的文档,使用HTTP的“content-range”标头实现分页,因此dojo需要一个标题,如:

Content-Range: items 0-19/100

(资料来源:http://dojotoolkit.org/reference-guide/1.7/dojox/data/JsonRestStore.html

这意味着REST-Api提供了总共100个项目中的前20个。

像这样手动设置Content-Range标头

getResponse().getAttributes().get("org.restlet.http.headers").add(new Parameter("Content-Range", "FooBar")

导致以下错误:

WARNING: Addition of the standard header "Content-Range" is not allowed. Please use the equivalent property in the Restlet API.

根据restlet的文档,该属性为“message.entity.range”(来源:http://wiki.restlet.org/docs_2.0/130-restlet.html

直接修改此哈希映射也没有成功:

getResponse().getAttributes().put("message.entity.range", "FooBat");

另一种似乎很有希望的方法是使用restlet的“Representation”对象,因为它有一个setRange()方法,但在请求时间内,对象引用为null:

getResponse().getEntity()

所以我的问题是:如何将Content-Range标头设置为Restlet响应?

1 个答案:

答案 0 :(得分:1)

您必须在Representation类中使用等效的Java属性,因此这是getResponse()。getEntity()。setRange(myRange)。