Установка пользовательского заголовка диапазона содержимого с помощью 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).