首页 > 解决方案 > 有没有办法使用 akka-http 从查询参数中获取流?

问题描述

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

我知道我可以通过 as[] 指令将查询参数获取到案例类,但似乎必须将其包装在源中以便对其进行源流处理。

标签: akka-streamakka-http

解决方案


作为URL一部分的查询参数不是从客户端“流式传输”的,而是请求行的一部分。因此,当您HttpRequest的内存中有一个对象时,您已经消耗了足够的空间来保存查询参数。这意味着您将失去使用Source. 我建议首先分析为什么要创建 Source ......

如果您绝对必须从参数中创建一个 Source ,那么您可以使用parameterSeqDirective

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

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

  }

推荐阅读