Добавление заголовков в Akka HTTP HttpRequest - PullRequest
0 голосов
/ 18 марта 2019

У меня есть Akka HTTP HttpRequest, и я хочу добавить к нему два заголовка.

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

Ожидаемое:

  • новый HttpRequest объект с дополнительными заголовками

Фактический:

  • .addHeaders ожидает java.lang.Iterable и не компилируется.

Каков рекомендуемый способ сделать это в Scala?

Есть обходной путь, но он немного грязный:

req.withHeaders(req.headers ++ hs)

Запуск Scala 2.12.8 и Akka HTTP 10.1.7.

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Одной из альтернатив является использование foldLeft и addHeader:

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

hs.foldLeft(req)((r, h) => r.addHeader(h))
0 голосов
/ 19 марта 2019

Вы можете скопировать существующий HttpRequest в новый HttpRequest с заголовками

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