Restlet - Acesse elementos da URL da solicitação
Pergunta
Não tenho certeza de qual é a maneira correta de acessar partes do URL solicitado.
Nesse caso, quero obter o caminho solicitado sem as variáveis de consulta.Esta é a única maneira que encontrei de fazer isso:
String path = getRequest().getResourceRef().getHostIdentifier() +
getRequest().getResourceRef().getPath();
O resultado seria a parte em negrito deste URL: https://stackoverflow.com/questions/ask?consulta=valor
Também encontrei cerca de 6 maneiras diferentes de obter o nome do servidor (http://stackoverflow.com), mas estou preocupado que alguns deles falhem em certos casos que não conheço (por que haveria 6 maneiras diferentes de fazer uma coisa):
getRequest().getHostRef().getHostIdentifier();
getRequest().getHostRef().getIdentifier();
getRequest().getRootRef().getHostIdentifier();
getRequest().getRootRef().getIdentifier();
getRequest().getResourceRef().getHostIdentifier();
E isso parece obter o URL completo com parâmetros de consulta:
getRequest().getResourceRef().getIdentifier();
Qualquer explicação adicional seria muito apreciada.
Solução
Se você estiver em um UniformResource (ou subclasse), acho que você pode estar procurando pelo método getReference(), que retorna a referência do URI.Existem vários outros métodos de conveniência nessa classe nos quais você pode estar interessado, para que não precise passar pela solicitação.Ver UniformResource (Resto 2.0).