2013-01-09 46 views
0

我使用play 1.2.5,並且我正在給異步調用REST服務。await()在播放1.2.5

爲此,我創建了一個承諾對象,然後將此承諾對象作爲參數提供給await()方法。 await()方法返回一個httpResponse對象。

它工作正常,然後REST服務返回響應。但是,如果REST服務沒有響應(可能是因爲REST服務關閉),那麼我會在httpResponse中得到一個空值。 但需要一段時間才能獲得響應。

我可以配置等待剩餘服務響應承諾的時間嗎?如果不是那麼默認的等待時間是多少?

任何幫助,將不勝感激

+0

你使用什麼語言? Scala呢? – svick

+0

我使用java作爲調用REST服務的語言。 – user1630693

+0

假設您解決了響應成功的REST響應的承諾。同樣,如果REST超時或返回錯誤,則需要拒絕承諾。具體如何完成(以及所使用的術語)取決於您用於承諾的庫。 –

回答

1

如果您使用播放WS LIB你有WSRequest對象的超時方法,你可以定義它需要在幾秒鐘內調用返回前的時間,如果沒有響應

0

WSRequest上有一個超時調用。

WS.WSRequest wsReq = WS.url("http://whatever"); 
wsReq.timeout("1min"); 

... 

當你做一個postAsync(),你會得到一個承諾。您也可以撥打promise.onRedeem()添加處理程序來處理錯誤等。您可以使用它來捕獲超時異常。

+0

謝謝大家的幫助。使用「timeout()」使請求超時看起來是個好主意。但它不起作用。 – user1630693

相關問題