Как Restlet обрабатывает заголовок HTTP Accept? - PullRequest
1 голос
/ 02 июня 2009

Платформа Restlet должна обрабатывать автоматическое согласование содержимого; однако, похоже, что он делает это неправильно.

Когда клиент отправляет HTTP-запрос GET с заголовком Accept со значением, Restlet автоматически не согласовывает содержимое.

Кто-нибудь знает, как обрабатывается заголовок Accept?

1 Ответ

8 голосов
/ 03 июня 2009

Restlet API имеет обширную поддержку заголовка «Принять». Информация анализируется и доступна методом Request.getClientInfo().getAcceptedMediaTypes(): List<Preference<MediaType>>.

Теперь, чтобы автоматически согласовывать контент для вас, движок Restlet должен иметь информацию о доступных вариантах. Это цель org.restlet.resource.Resource class в Restlet 1.1 и новый класс org.restlet.resource.ServerResource в разрабатываемой версии Restlet 2.0.

В Restlet 1.1 вы создаете подкласс Resource, объявляете варианты следующим образом:

   getVariants().add(new Variant(MediaType.TEXT_PLAIN));

   getVariants().add(new Variant(MediaType.APPLICATION_XML));

Затем переопределите метод represent(Variant) следующим образом:

public Representation represent(Variant){

  if(MediaType.TEXT_PLAIN.equals(variant.getMediaType()){

     ...

  else if(...)

     ...
}

С уважением, Джером

PS: пожалуйста, используйте наш список рассылки для будущих вопросов и посмотрите в архивах: http://www.restlet.org/community/lists

...