我正在寻找像
这样的东西def proxy = Action.async { implicit req =>
//do something with req
val newRequest = req.map( r = r.path = "http://newurl");
forward(newRequest)
}
我看到有一个redirect
方法,但只允许我传递请求参数而不是其他所有内容,标题等。
我希望内置一些东西,所以我不必自己构建它。
答案 0 :(得分:0)
我不确定这是否符合您的要求,但您是否已查看Play's WS。
操作forwardTo
获取一个网址,获取相应的网页并将其作为此请求的响应返回。它不像Spring框架中的前锋,但它为我做了工作。
/**
* Like an internal redirect or an proxy. The URL in the browser doesn't
* change.
*/
public Promise<Result> forwardTo(String url) {
Promise<WS.Response> response = WS.url(url).get();
return response.map(new Function<WS.Response, Result>() {
public Result apply(WS.Response response) {
// Prevent browser from caching pages - this would be an
// security issue
response().setHeader("Cache-control", "no-cache, no-store");
return ok(response.getBody()).as("text/html");
}
});
}
(我正在使用Play 2.2.3)