我正在使用Play Framework,并且尝试使用内置的WS支持发出HTTP请求。每当我尝试在控制器中发出此HTTP请求时,都会出现此错误

error: cannot find symbol


为代码

public static Result foo(){
    return async(//ERROR ON THIS LINE FOR `async()`
        WS.url(GoogleStrategy.getTokenUrl).post(getTokenUrlParams).map(
            new F.Function<WSResponse, Object>() {
                    @Override
                    public Object apply(WSResponse wsResponse) throws Throwable {
                        return ok(wsResponse.asJson());
                    }
            }
        )
    );
}


这很奇怪,因为在文档中显示的所有示例中,此接缝都是执行我希望做的正确方法。

最佳答案

您几乎可以肯定在看该文档的旧版本。不再需要async()

当前版本:https://www.playframework.com/documentation/2.3.x/JavaAsync

public static Promise<Result> foo(){
  return WS.url(GoogleStrategy.getTokenUrl).post(getTokenUrlParams).map(
    new F.Function<WSResponse, Result>() {
      @Override
      public Object apply(WSResponse wsResponse) throws Throwable {
        return ok(wsResponse.asJson());
      }
    }
  );
}

09-04 12:50