有没有一种方法可以使用akka-http从查询参数中获取流?

时间:2019-06-15 23:08:11

标签: akka-stream akka-http

我知道如何通过POST请求从实体中获取流,但是我希望也能够从GET请求的查询参数中创建源流。

我知道我可以通过as []指令将查询参数获取到case类,但是为了将其进行流传输而不得不将其包装在源中似乎是一种错过。

1 个答案:

答案 0 :(得分:0)

URL中的查询参数不是从客户端“流式传输”的,而是they are part of the request line。因此,当内存中有一个HttpRequest对象时,您已经消耗了足够的空间来保存查询参数。这意味着您将失去使用Source带来的任何背压收益。我建议首先分析一下为什么要创建源...

如果绝对必须根据参数创建源,则可以使用parameterSeq Directive

val route = 
  parameterSeq { params : Seq[(String, String)] =>

    val parameterSource : Source[(String, String), _] = Source(params)

  }