簡體   English   中英

設置內容/媒體類型 - Restlet

[英]Set Content/Media type - Restlet

如何在Restlet(谷歌應用引擎版本2.0)中設置內容類型? 在這種情況下,我想將內容類型設置為“”text / xml“。

我有:

public class SubResource  extends ServerResource {

 @Get
 public Representation get(Representation representation){

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

    return sr;
 }
}

即使它是在Representation中設置的值,或者它是從ServerResource類設置的方式與返回代碼相同,我也不確定。

回答:

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

除非GAE風格中有一些我不知道的東西,否則我認為它不需要那么復雜。 這對我有用:

 @Get( value = "xml" )
 public String myMethodNameHere(){
    return getSomeXml();
 }

如果您正在使用注釋,則可以執行此操作

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

    setStatus(Status.SUCCESS_OK);

    return new StringRepresentation("Hi");
 }

請參閱GetMetadataService

從我之前寫的一些代碼中復制這個,不知道自從以后事情是否發生了變化:

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

根據您的需要,還有MediaType.TEXT_XML

“啊哈!” 這里,函數必須返回一個Representation()。

這將在大多數時間工作,但在某些瀏覽器中它將返回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;

注釋對我不起作用。 我明確設置了內容類型。

@Get
public Representation represent() {
    StringRepresentation sr = new StringRepresentation("xml string..");
    sr.setMediaType(MediaType.APPLICATION_XML);
    return sr;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM