gpt4 book ai didi

java - Play 2.0.4 : Any chance to set followRedirects to false in WS. Java Controller 中有响应?

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:16 25 4
gpt4 key购买 nike

我需要自己进行 w WS 调用来处理 HEAD 请求,无论如何它总是在重定向后得到响应(所以最后我总是得到 200 状态而不是 301)

在文档中写道,我应该在 application.conf 中设置 ws.followRedirects=false ,无论如何它似乎不起作用。我可以看到 Scala 版本正在尝试读取此配置,但是我有一个 Java Controller 。现在也无法切换到 2.1,据我所知,该问题有特殊的 setter 。

有什么解决办法吗?

最佳答案

您可以从 Java 调用 Scala。 wsHead 方法封装了 Scala 代码,并且仅传递来自 Java Play API 的对象。迁移到 Play 2.1.0 后,您可以重构该方法。

package controllers;

import play.api.libs.ws.Response;
import play.api.libs.ws.WS$;
import play.libs.F;
import play.libs.WS;
import play.mvc.*;

public class Application extends Controller {

public static Result index() {
final String url = "http://localhost:80";
final F.Promise<WS.Response> responsePromise = wsHead(url);
return async(responsePromise.map(new F.Function<WS.Response, Result>() {
@Override
public Result apply(WS.Response response) throws Throwable {
return ok("got status: " + response.getStatus());
}
}));
}

private static F.Promise<WS.Response> wsHead(String url) {
return new F.Promise(WS$.MODULE$.url(url).head()).map(new F.Function<Response, WS.Response>() {
@Override
public WS.Response apply(Response o) throws Throwable {
return new WS.Response(o.getAHCResponse());
}
});
}
}

您仍然需要在 application.conf 中添加 ws.followRedirects=false

关于java - Play 2.0.4 : Any chance to set followRedirects to false in WS. Java Controller 中有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15093511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com