Задать тип контента / медиа - Рестлет - PullRequest
2 голосов
/ 12 июня 2010

Как установить тип контента в Restlet (версия 2.0 для движка приложений Google)?В этом случае я хотел бы установить тип содержимого "" text / xml ".

У меня есть:

public class SubResource  extends ServerResource {

 @Get
 public Representation get(Representation representation){

    setStatus(Status.SUCCESS_OK);
    StringRepresentation sr = new StringRepresentation(getSomeXml());

    return sr;
 }
}

Я не уверен, даже если это значение, котороезадается в представлении или если он задан из класса ServerResource так же, как код возврата.

ОТВЕТ:

    StringRepresentation sr = new StringRepresentation(getSomeXml());
    sr.setMediaType(MediaType.TEXT_XML);

Ответы [ 5 ]

8 голосов
/ 07 июня 2011

Если в стиле GAE нет чего-то, о чем я не знаю, я не думаю, что это должно быть настолько сложным.Это работает для меня:

 @Get( value = "xml" )
 public String myMethodNameHere(){
    return getSomeXml();
 }
5 голосов
/ 12 июня 2010

Если вы используете аннотации, вы можете сделать

@Get("txt")
public Representation get() {

    setStatus(Status.SUCCESS_OK);

    return new StringRepresentation("Hi");
 }

См. Получить и Служба метаданных .

3 голосов
/ 12 июня 2010

Копируя это из некоторого кода, который я написал некоторое время назад, я не уверен, что что-то изменилось с тех пор:

Representation representation = new StringRepresentation(body, MediaType.TEXT_PLAIN);
representation.setCharacterSet(CharacterSet.UTF_8);
return representation;

Для ваших нужд есть также MediaType.TEXT_XML

1 голос
/ 24 октября 2012

Аннотация не работает для меня.Я устанавливаю тип содержимого явно.

@Get
public Representation represent() {
    StringRepresentation sr = new StringRepresentation("xml string..");
    sr.setMediaType(MediaType.APPLICATION_XML);
    return sr;
}
1 голос
/ 19 апреля 2012

"Ага!"здесь, это то, что функция должна возвращать Представление ().

Эта функция будет работать большую часть времени, но в некоторых браузерах она будет возвращать 404 с содержимым.

getResponse().setEntity(rep);
getResponse().getEntity().setModificationDate(date);
getResponse().setStatus(Status.SUCCESS_OK);

Это покажетсодержание И код состояния 200:

getResponse().setEntity(rep);
getResponse().getEntity().setModificationDate(date);
getResponse().setStatus(Status.SUCCESS_OK);
return rep;
...