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 的“表示”对象,因为它有一个 setRange() 方法,但是在请求期间,对象引用为空:

getResponse().getEntity()

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

4

1 回答 1

1

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

于 2012-06-30T22:23:06.040 回答