Restlet 框架应该处理自动内容协商;但是,它似乎没有正确地做到这一点。
当客户端发送带有带有值的 Accept 标头的 HTTP GET 请求时,Restlet 不会自动协商内容。
有谁知道如何处理 Accept 标头?
Restlet 框架应该处理自动内容协商;但是,它似乎没有正确地做到这一点。
当客户端发送带有带有值的 Accept 标头的 HTTP GET 请求时,Restlet 不会自动协商内容。
有谁知道如何处理 Accept 标头?
Restlet API 广泛支持“Accept”标头。信息通过Request.getClientInfo().getAcceptedMediaTypes()
:List<Preference<MediaType>>
方法解析并可用。
现在,为了自动为您协商内容,Restlet 引擎需要有关可用变体的信息。这是org.restlet.resource.Resource class
Restlet 1.1 的目的,也是正在开发的 Restlet 2.0 版本中的新org.restlet.resource.ServerResource
类。
在 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