【问题标题】:Get form parameters from a post request using spray/scala使用 spray/scala 从 post 请求中获取表单参数
【发布时间】:2011-12-07 20:41:04
【问题描述】:

我对所有这些 Scala/Spray 真的很陌生。通过一些测试,我能够使用参数函数从 Get 请求中获取参数。但是,我正在尝试获取从请求正文上的 POST 请求发送的一些参数。似乎参数函数无法获取这些值。

例如,我试图从发布请求正文中获取此值“name=john&lastname=smith”。获得这些值的最佳选择是什么?

谢谢

【问题讨论】:

  • 你能用 Request.QueryString("name") 吗?
  • 如果参数不在查询字符串中,这将不起作用。

标签: scala post akka spray


【解决方案1】:

您可以使用 [Form-Field-Filters] 从 POST 中提取参数

[表单域过滤器]https://github.com/spray/spray/wiki/Form-Field-Filters

【讨论】:

    【解决方案2】:

    确实,parameters 指令只处理查询字符串中的实际内容,而不是请求正文中的参数。要将内容从正文中取出,您需要使用 content 指令,然后使用 unmarshal 内容。

    这个spray-user thread 可能会有所帮助,因为它包含一些解组代码,可以完全满足您的需求。

    【讨论】:

    • 仅供参考,content 指令最近重命名为 entity。此外,正如另一个答案所说,formFields 指令允许从 POST 数据中提取数据。
    【解决方案3】:

    从最近的 Spray 版本开始,您需要使用 Unmarshaller 替换 FormData

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多