加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

是否有快速内置的方式来转发scala Play框架中的请求

发布时间:2020-12-16 18:28:32 所属栏目:安全 来源:网络整理
导读:我正在寻找类似的东西 def proxy = Action.async { implicit req = //do something with req val newRequest = req.map( r = r.path = "http://newurl"); forward(newRequest)} 我看到有一个重定向方法但只允许我传递请求参数而不是其他所有内容,标题等. 我
我正在寻找类似的东西

def proxy = Action.async { implicit req =>
  //do something with req
  val newRequest = req.map( r = r.path = "http://newurl");
  forward(newRequest)
}

我看到有一个重定向方法但只允许我传递请求参数而不是其他所有内容,标题等.

我希望有一些内置的东西,所以我不必自己构建它.

解决方法

我不确定这是否符合您的要求,但您是否已经了解了 Play’s WS.

操作forwardTo获取一个url,获取相应的页面并将其作为此请求的响应返回.它不像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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读