我有一个现有的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。
一种选择是使用foldLeft
和addHeader
:
val req: HttpRequest = ???
val hs: Seq[HttpHeader] = Seq(RawHeader("a", "b"))
hs.foldLeft(req)((r, h) => r.addHeader(h))
您可以将现有的Http请求复制到带有标头的新Http请求
val req: HttpRequest = ???
val hs: Seq[HttpHeader] = Seq(RawHeader("a", "b"))
val reqWithHeaders: HttpRequest = req.copy(headers=hs)