2017-04-22 66 views
1

我有一個GET路線:playframework路由僅兩次accessable在我playframework項目

GET    /dashboard/issues     @controllers.Dashboard.getBitBucketTickets() 

的方法是這樣的:

@Singleton 
public Result getBitBucketTickets() { 

    String credentials = "J:Eb"; 
    String encoded = DatatypeConverter.printBase64Binary(credentials.getBytes()); 

    String json = null; 
    try { 
     json = new Gson().toJson(Unirest.get("https://api.bitbucket.org/1.0/repositories/t/frontend/issues?limit=5&status=new") 
       .header("Authorization", "Basic " + encoded) 
       .header("Content-Type", "application/json; charset=UTF-8") 
       .header("Accept", "application/json; charset=UTF-8").asJson()); 
    } catch (UnirestException e) { 
     System.out.println(e); 
    } 
    return ok(json); 
} 

當我調用路由兩次我不能稱它爲第三次。我必須重新啓動項目。

在這種情況下會出現什麼問題?

感謝

回答

1

我從來沒有使用Unirest,但在documentation一個點,你需要注意的:

Unirest啓動後臺事件循環和Java應用程序不會 可以退出,直到手動關閉所有線程的 調用:

Unirest.shutdown();

通常我使用WSClient和Play。它完美的作品:https://www.playframework.com/documentation/2.5.x/JavaWS

+0

好的,謝謝然後Ich明天會嘗試 – Felix

+0

當我這樣做'WSRequest請求= ws.url(url).setHeader(「Authorization」,「Basic」+ encoded).get();' 我在setHeader中得到一個錯誤...函數setHeader()未知... – Felix

+1

您需要在'build.sbt'文件中只添加一次'javaWs':'libraryDependencies ++ = Seq( javaWs ) ' –