如何解析 Spray-routing 中的 get 请求参数?

2024-05-02

这就是代码部分的样子

    get{
      respondWithMediaType(MediaTypes.`application/json`){
          entity(as[HttpRequest]){
            obj => complete{


                println(obj)
                "ok"
            }
          }
      }
    }~

我可以将请求映射到 Spray.http.HttpRequest 对象,并且可以从该对象中提取 uri,但我想有一种比手动执行更简单的方法来解析 get 请求中的参数。

例如,如果我的获取请求是

 http://localhost:8080/url?id=23434&age=24

我希望能够从此请求中获取 ID 和年龄


事实上你可以做得更好。在路由中有两个指令:parameter and parameters,我想区别很明显,你还可以使用一些修饰符:! and ?。的情况下!,表示必须提供该参数,否则请求将被拒绝?返回一个选项,因此您可以在这种情况下提供默认参数。例子:

val route: Route = {
  (path("search") & get) {
    parameter("q"!) { query =>
      ....
    }
  }
}

val route: Route = {
  (path("search") & get) {
    parameters("q"!, "filter" ? "all") { (query, filter) => 
      ...
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解析 Spray-routing 中的 get 请求参数? 的相关文章

随机推荐

  • Blazor 服务器端 - AWS 环境中频繁出现 504 错误

    通过 AWS Elastic Beanstalk 将 blazor 服务器端项目部署到 Amazon Web Services 环境后 该网站经常断开连接 我不明白 测试时这些断开连接不会在本地发生 Errors 2020 04 30T16
  • 无法在 web.config 中为 WCF Web 服务设置服务名称属性

    我编写了一个运行良好的 WCF Web 服务 然后我从另一个应用程序复制了该 Web 服务的内容 并创建了一个新的 WCF 文件 该文件在 web config 中创建了一个新文件 但名称属性显示找不到命名空间 以下是我的 WCF 前几行的
  • 开源协同过滤框架

    我想知道是否存在任何开源框架可以帮助我在我的网站中包含以下类型的功能 1 如果我正在查看特定产品 我想看看我可能感兴趣的其他产品 该信息可以通过计算例如除了我正在查看的产品之外我所在地区的其他人 或我的个人资料的任何其他特征 购买的内容来推
  • 如何观察Firebase存储上传事件

    我有一个将照片上传到 Firebase 存储的 iOS 应用程序 以及一个连接到同一个 Firebase 的 Web 应用程序 有没有办法从网络上观察存储的变化 当上传照片时 只有iOS设备本身可以访问UploadTask 并且我没有看到o
  • HtmlAgilityPack 有属性吗?

    我想做的就是 node Attributes class Value 但如果节点没有class属性 就崩溃了 所以 我必须先检查它是否存在 对吧 我怎么做 Attributes不是一个字典 它是一个包含内部字典的列表 并且没有 HasAtt
  • Visual Studio在其他计算机上远程上传和调试

    有没有办法在另一台计算机上远程上传 运行和调试应用程序 我知道您可以将 Visual Studio 远程调试器附加到远程计算机上运行的应用程序 但我正在寻找一种完全自动化的方法来执行此操作 我正在构建一个家庭自动化系统 如果我能为 Visu
  • QWebView / Qt WebKit 不会打开某些 SSL 页面;不允许重定向?

    在带有 Visual C 2008 SP1 的 Windows 7 上全新安装 Qt SDK 1 1 4 我正在使用 Qt Creator 为什么此代码无法加载某些网页 include
  • 围绕右下角对齐图像

    我正在使用相对布局将一个较小的图像叠加在较大的图像之上 我希望较小图像的右下角与较大图像的 B R 角重合 我在布局 XML 中使用边距参数 指定倾斜测量 但这似乎不适用于所有设备和分辨率 在某些情况下 小图像会从边框移动 4 5 像素 是
  • 如何有效地合并两个 BST?

    如何合并两个二叉搜索树并保持BST的性质 如果我们决定从树中取出每个元素并将其插入到另一个元素中 则此方法的复杂度将为O n1 log n2 where n1是树的节点数 比如T1 我们已经拆分了 并且n2是另一棵树的节点数 比如T2 执行
  • 模拟导入失败

    我该如何制作import pkg失败moduleA py 我可以打补丁pkg如果从中导入某些内容则会失败 否则不会失败 test py import os import moduleA from unittest mock import p
  • 如何处理错误“方法‘First’只能用作最终查询操作”

    我想按关系从数据库中的不同表中检索数据 但出现错误 我不知道如何处理 int customer id int Parse this comboBoxnamecustomer SelectedValue ToString a from c i
  • 将 .cer 格式的证书添加到 .bks 密钥库中

    我需要将 cer 格式的证书添加到 BKS 密钥存储中 SO 上对此进行了描述 如何将 cer 转换为 BKS https stackoverflow com questions 21284466 how to convert cer to
  • SQLPLUS 保存到文件

    我必须为我的数据库类使用 SQLPLUS 我们的第一个作业是简单的保存 我按照说明进行操作 我正在使用 PuTTY 访问 sqlplus 在本练习中使用以下 SQL 命令 并尝试使用 SAVE 和 SPOOL 命令将 SQL 命令和输出保存
  • ActionScript 3.0 中缺少运算符重载

    我在 ActionScript 中最怀念的事情之一是缺少运算符重载 特别是 我通过在我的类中添加 Compare 方法来解决这个问题 但这在很多情况下没有帮助 比如当你想使用内置字典之类的东西时 有没有好的方法来解决这个问题 Nope 但添
  • 如何使用Query备份MySQL数据库?

    我们如何使用 Query 备份 MySQL 数据库 就像我们可以使用以下 Query 备份 MS SQL 一样 Query backup database DATABASENAME to disk PATH 使用 mysqldump php
  • OpenCV 在使用 anaconda 的 Linux 上无法与 python 正常工作。收到 cv2.imshow() 未实现的错误

    这就是我得到的确切错误 我的操作系统是 Ubuntu 16 10 OpenCV 错误 未指定错误 该功能未实现 使用 Windows GTK 2 x 或 Carbon 支持重新构建库 如果您使用的是 Ubuntu 或 Debian 请安装
  • 发送到带有联系表格 asp.net 的电子邮件

    我如何使用 ASP NET 中的联系表单向指定的电子邮件地址发送电子邮件 该网站通过托管公司托管 谢谢 MailMessage mail new MailMessage SmtpClient SmtpServer new SmtpClien
  • 将 SelectByText (部分)与 C# Selenium WebDriver 绑定一起使用似乎不起作用

    我正在使用 C 中的 Selenium WebDriver 扩展通过部分文本值 实际前面有一个空格 从选择列表中选择一个值 我无法使用部分文本匹配来使其工作 我做错了什么还是这是一个错误 可重现的例子 using Microsoft Vis
  • 连接系统 R 中的两个或多个数据帧

    我的问题是如何在 R 系统中连接两个或多个数据帧 例如 我有两个数据框 first x y z 1 3 2 4 2 4 5 7 3 5 6 8 second x y z 1 1 1 1 2 4 5 7 我需要这个 x y z 1 3 2 4
  • 如何解析 Spray-routing 中的 get 请求参数?

    这就是代码部分的样子 get respondWithMediaType MediaTypes application json entity as HttpRequest obj gt complete println obj ok 我可以