如何从喷涂指令返回失败的响应?

时间:2014-04-22 07:13:25

标签: scala spray

我实现了简单的HTTP路由服务器,需要分析传入请求中的几个字段并将其重新发送到内部服务器,然后它应该按原样返回给调用者的回复。我还想记录等待内部服务器回复的时间。我的指令看起来像这个

complete {

  val pipeline: HttpRequest => Future[String] = sendReceive ~> unmarshal[String]
  val response: Future[String] = pipeline(Post("https://my_internal_serverservices/MainService", payload.toString()))
  response

}

但这仅适用于HTTP 200回复​​。对于其他返回代码,未来永远不会完成。

请您说明如何正确实施?理想情况下,我希望以原始状态路由请求 - 包含所有http标头等。

1 个答案:

答案 0 :(得分:0)

正如鲁道夫指出问题是在使用unmarshal