我实现了简单的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标头等。
答案 0 :(得分:0)
正如鲁道夫指出问题是在使用unmarshal
。