0
Im新的斯卡拉,我正在使用喷雾发布请求到服务器。如果这个问题在某种程度上存在,那么提前道歉。我真的很感激,如果有人能告诉我如何做到这一点,或什么我做错了。我想要做的是:斯卡拉顺序发布使用无需等待理解
- 帖子的请求,并得到一个未来[的HttpResponse]
- 不使用等待(因为我不想阻塞线程),检查响应代码
- 如果它的状态码大于400,则更改数据并重新发布数据并返回Future [HttpResponse],而不做任何进一步处理。
- 如果步骤2中的状态码好,然后返回未来[的HttpResponse]从第2步
这是我到目前为止,这似乎并没有给我,如果状态响应代码很好,但是在服务器上完成它的工作。如果我重试相同的请求,我会得到第一个显示的结果,即404,而我期望第一个返回404,第二个修复数据并重发请求,并获得未来的响应。
def post(headers:HttpHeader, data:HttpEntity): Future[HttpResponse] = {
...
}
def secondPost(headers:HttpHeader, data:HttpEntity): Future[HttpResponse] = {
// fix up data and repost
post(newHeaders, newData)
}
for{
first <- post(headers, data)
if first.status.intValue > 400
second < secondPost(headers, data)
} yield {
if (first.status.intvalue > 400) second else first
}
任何帮助,非常感谢。由于
干杯
尤金喜来做到这一点。像魅力伴侣一样工作:)欣赏它 – Josh 2014-09-28 21:58:09