Установка пользовательского заголовка диапазона содержимого с помощью Restlet

Я использую рестлет 2.0.11 для предоставления данных для веб-приложения на основе Dojo через REST-Web-интерфейс.

Согласно документации dojo, разбиение на страницы осуществляется с использованием заголовка "content-range" HTTP, поэтому dojo ожидает заголовок, подобный следующему:

Content-Range: items 0-19/100

(Источник: http://dojotoolkit.org/reference-guide/1.7/dojox/data/JsonRestStore.html)

Это означает, что REST-Api предоставляет первые 20 из 100 предметов.

Установка заголовка 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.

Согласно документации рестлета, это свойство message.entity.range (Источник: http://wiki.restlet.org/docs_2.0/130-restlet.html).

Прямая модификация этой хэш-карты также не имела успеха:

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

Другой способ, который казался многообещающим, - это использование объекта "Представление" рестлета, так как он имеет метод setRange(), но во время запроса ссылка на объект равна нулю:

getResponse().getEntity()

Итак, мой вопрос: как установить заголовок Content-Range для ответа Restlet?

1 ответ

Решение

Вы должны использовать эквивалентные свойства Java в классе Представления, так что это getResponse(). GetEntity(). SetRange(myRange).

Другие вопросы по тегам