Restlet如何处理HTTP Accept标头?

1 restlet

Restlet框架应该处理自动内容协商; 但是,它似乎没有做得好.

当客户端使用带有值的Accept标头发送HTTP GET请求时,Restlet不会自动协商内容.

有谁知道如何处理Accept标头?

Jer*_*vel 8

Restlet API广泛支持"Accept"标头.信息通过Request.getClientInfo().getAcceptedMediaTypes():List<Preference<MediaType>>method 解析并可用.

现在,为了自动为您协商内容,Restlet引擎需要有关于可用变体的信息.这是org.restlet.resource.Resource classRestlet 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));
Run Code Online (Sandbox Code Playgroud)

然后覆盖这样的represent(Variant)方法:

public Representation represent(Variant){

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

     ...

  else if(...)

     ...
}
Run Code Online (Sandbox Code Playgroud)

最好的问候,杰罗姆

PS:请使用我们的邮件列表以获取未来的问题,并查看档案:http: //www.restlet.org/community/lists