2014-10-08 65 views
0

我正在使用Play Framework,我試圖使用內置的WS支持進行HTTP請求。每當我嘗試,並在控制器我得到這個錯誤播放框架:找不到符號「async」

error: cannot find symbol 

的代碼這個HTTP請求

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()); 
        } 
      } 
     ) 
    ); 
} 

這很奇怪,因爲在所有的文檔中的示例,這接縫是正確的方式來做我想做的事情。

回答

3

你幾乎可以肯定地看着舊版本的文檔。不再需要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()); 
     } 
    } 
); 
} 
+0

我現在得到[此錯誤](http://i.imgur.com/lvGAkcG.png) – 2014-10-08 23:05:38

+0

需要注意的是,包括無極''作爲返回類型如果有幫助,我必須將其更改爲'F.Promise '... – 2014-10-08 23:10:22

+0

Ryan,將'new F.Function ()'更改爲'new F.Function ()'( '對象' - >'結果'),我會接受你的答案。幾乎是正確的,只是一個簡單的類型錯誤。 – 2014-10-11 19:13:11