0

我正在使用 RESTlet 处理来自浏览器的 PUT 请求,并且在 PUT 成功后,我想将浏览器重定向到不同的网页。

对我来说似乎是标准的 PUT->REDIRECT->GET,但我不知道如何在我的 RESTlet 资源中执行此操作。

这是 PUT 完成请求的工作后的代码:

getResponse().redirectSeeOther("/account");

但是,这会导致浏览器获得:

Response Headers
Location    riap://application/account

当然,“riap”协议对浏览器毫无意义,“应用程序”不是服务器名称。似乎应该有一种方法可以将重定向发送回浏览器,而无需在我的 redirectSeeOther() 调用中构建整个 URL。构建 URL 似乎很容易出错。

有没有一种简单的重定向方法而无需从头开始构建整个 URL?

谢谢!

真挚地,

斯蒂芬·麦坎茨

4

1 回答 1

1

虽然我不能 100% 确定您要在哪种类型的课程中执行此操作。

尝试 :

Reference reference = getRequest().getRootRef().clone().addSegment("account");
redirectSeeOther(reference);

我通常也会将身体设置为

return new ReferenceList(Arrays.asList(reference)).getTextRepresentation();

但这可能不是所有客户都需要的,或者根本不需要。我通常会在扩展 ServerResource 的类中使用这种风格 - Restlet(2.0.x 或 2.1.x)。

于 2013-09-17T09:22:04.037 回答