2010-06-10 63 views
4

我不确定访问请求的URL的部分方法的正确方法。Restlet - 访问请求URL的元素

在这种情况下,我想获取没有查询变量的请求的路径。这是我发现这样做的唯一途径:

String path = getRequest().getResourceRef().getHostIdentifier() + 
    getRequest().getResourceRef().getPath(); 

其结果将是这个网址的加粗部分:https://stackoverflow.com/questions/ask查询=值

我还发现约6个不同的方法来获得服务器名称(http://stackoverflow.com),但我担心,他们中有些人在,我不知道(为什么会有6种不同的方式做一件事)某些情况下会失败:

getRequest().getHostRef().getHostIdentifier(); 
getRequest().getHostRef().getIdentifier(); 
getRequest().getRootRef().getHostIdentifier(); 
getRequest().getRootRef().getIdentifier(); 
getRequest().getResourceRef().getHostIdentifier(); 

这似乎与查询参数,以获得完整的URL:

getRequest().getResourceRef().getIdentifier(); 

任何进一步的解释将不胜感激。

回答

4

如果你在UniformResource(或子类)中,我想你可能正在寻找方法getReference(),它返回URI引用。您可能会对该课程中的其他一些便利方法感兴趣,因此您无需通过该请求。见UniformResource(Restlet 2.0)。