2013-01-09 49 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

相关问题