将标头添加到Akka HTTP HttpRequest

问题描述 投票:0回答:2

我有一个现有的Akka HTTP HttpRequest,我想添加两个标头。

val req: HttpRequest = ???
val hs: Seq[HttpHeader] = Seq(RawHeader("a", "b"))
req.addHeaders(hs)

预期:

  • 带有附加标题的新HttpRequest对象

实际:

  • .addHeaders期待java.lang.Iterable并且不编译。

在Scala中这样做的推荐方法是什么?

有一个解决方法,但它有点cludgy:

req.withHeaders(req.headers ++ hs)

运行Scala 2.12.8和Akka HTTP 10.1.7。

scala akka-http
2个回答
2
投票

一种选择是使用foldLeftaddHeader

val req: HttpRequest = ???
val hs: Seq[HttpHeader] = Seq(RawHeader("a", "b"))

hs.foldLeft(req)((r, h) => r.addHeader(h))

0
投票

您可以将现有的Http请求复制到带有标头的新Http请求

val req: HttpRequest = ???
val hs: Seq[HttpHeader] = Seq(RawHeader("a", "b"))
val reqWithHeaders: HttpRequest = req.copy(headers=hs)
© www.soinside.com 2019 - 2024. All rights reserved.