检索附加到ClientResource的URI

时间:2015-01-27 21:52:50

标签: restlet restlet-2.0

当我创建一个新的ClientResource时,我通常会执行以下操作

ClientResource cr = new ClientResource("URI string");

有没有办法在cr之后及时恢复URI字符串?

2 个答案:

答案 0 :(得分:1)

以下是关于此问题的一些其他提示:

ClientResource cr = new ClientResource("http://www.google.fr:8182/test");

String hostDomain = cr.getReference().getHostDomain();
String hostIdentifier = cr.getReference().getHostIdentifier();
int hostPort = cr.getReference().getHostPort();
String path = cr.getReference().getPath();
String scheme = cr.getReference().getScheme();

System.out.println("hostIdentifier = "+hostIdentifier);
System.out.println("hostDomain = "+hostDomain);
System.out.println("scheme = "+scheme);
System.out.println("hostPort = "+hostPort);
System.out.println("path = "+path);

这将为您提供以下内容:

hostIdentifier = http://www.google.fr:8182
hostDomain = www.google.fr
scheme = http
hostPort = 8182
path = /test

您可以注意到,如果该网址未明确指定,则hostDomain的值为-1

希望它有所帮助, 亨利

答案 1 :(得分:0)

找到测试一些get方法的解决方案。 您可以使用继承自抽象类CLientResource#getReference的{​​{1}}。 它返回一个Resource对象,它是

  

对统一资源标识符(URI)的引用。与此相反   java.net.URI类,此接口表示可变引用。它   严格遵守指定URI的RFC 3986并遵循它   命名约定。 [...]

     

要强调的基本要点是URI之间的区别   “引用”和URI。与URI相反(URI的目标标识符)   REST资源),URI引用可以是相对的(有或没有   查询和片段部分)。然后可以使用此相对URI引用   通过getTargetRef()方法解析基本引用   将返回一个新的已解析的Reference实例,一个绝对URI   没有基准参考且没有点段的参考(路径   细分“。”和“..”)。

有关更多信息,请参阅herehere