在 Play Framework 中使用 POST 路由参数

2024-01-27

我有一个登录路由,应将其输入参数作为 POST 变量传输。我已经这样定义了我的路线:

POST    /v1/accounts/login          controllers.v1.Accounts.login(username: String, password: String)

我的控制器是这样的:

object Accounts extends Controller {
  def login(username: String, password: String) = Action {
    Ok("Foo " + username)
  }
}

当我使用 Chrome 测试这条路线时高级 REST 客户端 https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo它仅适用于 GET 参数,如果我将其发送为application/x-www-form-urlencodedPOST 表单数据。

The Play 框架文档 http://www.playframework.com/documentation/2.2.x/ScalaRouting实际上从未提及 POST 参数,但也没有说它不起作用。

我认为如果我创建一个表单并将我的请求绑定到该表单,它可能会起作用,但这似乎不必要地复杂。

难道真的没有办法使用routes文件绑定POST参数吗?


路由 = 解析 URL 内的参数 = 通过 GET 发送参数。

这意味着,您正在尝试通过... GET params... 发送 POST 请求,这有什么意义?

詹姆斯·罗珀解释说:

在路由时,Play 尚未消耗请求正文,因此尚未解析提交的表单。 - 你也不希望它这样做,因为你的操作决定了请求正文如何/是否被解析、流式传输、发送到其他地方,如果 Play 在路由时执行此操作,它将限制你在操作中可以执行的操作。

从安全角度来看,将凭据保留在客户端路径中每台计算机的日志中绝对是个坏主意。

相反,您应该使用常见的表单处理方式来完成此操作,如中所述基本表格文档 http://www.playframework.com/documentation/2.2.x/ScalaForms:

route:

POST    /v1/accounts/login      controllers.v1.Accounts.login

action:

val userForm = Form(
  tuple(
    "username" -> text,
    "password" -> text
  )
)

def login = Action { implicit request =>
  val (username, password) = userForm.bindFromRequest.get
  Ok("Hello " + username + ", you're trying to login with: " + password)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Play Framework 中使用 POST 路由参数 的相关文章

  • 升级Java后找不到Sun.security

    我有一个使用 Play 2 0 创建的应用程序 我实现了 scribe java 库来使用一些 OAuth 服务 直到今天一切都很好 但是当我升级 jdk 并重新启动服务器时 我无法使用 scribe java 库 似乎它使用了一些类 例如
  • Play 框架作为 SBT 非根模块

    我正在尝试使用 SBT 开发 Play 2 0 Web 应用程序以及核心 Java 模块和其他 Java 客户端 是否可以通过仍然正确构建 Play 应用程序的方式进行配置 我之前开发过一个小型的一次性 Play 2 0 应用程序 但我直接
  • Akka 的语言和产品替代品是什么?

    现在我正在看游戏框架 https www playframework com 并且非常喜欢它 Play 中提供的功能中最受宣传的部分之一是Akka http akka io 为了更好地理解 Akka 以及如何正确使用它 您能告诉我其他语言或
  • 如何检测scala执行上下文耗尽?

    我的 Playframework 应用程序有时没有响应 我想在运行时检测到这一点 记录有关当前在耗尽的执行上下文上运行的内容的信息 实现这一目标的最佳策略是什么 我考虑过将小型可运行对象发布到执行上下文 如果它们没有及时执行 我会记录一条警
  • Typesafe Activator 运行错误(无法检索 jansi 1.11)

    我在 Windows 8 上安装了 Typesafe Activator 以使用 Play Framework 2 3 当我尝试运行 Activator 时 它停止并出现以下错误 unresolved dependency org fuse
  • 在 Play 应用程序中启动时调用服务

    我有一个 Play 2 4 应用程序 尝试在应用程序启动时启动每周任务 当前的建议是在急切注入的类的构造函数中执行此操作 Guice 但是 我的任务需要访问服务 如何将该服务注入到我的任务中而不出现错误 Error injecting co
  • Play Framework:无法加载 JNotify 本机库

    在我的 Windows 10 计算机上启动 Play 项目时遇到问题 在 Win 7 上运行良好 当我执行 activator run 时 我得到以下信息 Error loading library java library path C
  • 将对象的 json 数组解析为适当的案例类

    我有一个 json 数组settings像这样 name Company Name key company name default Foo name Deposit Weeks key deposit weeks default 6 na
  • 如何在 Slick 中调用存储过程并获取返回值(使用 Scala)

    我正在尝试从 Slick 3 0 在 Play Framework 中 调用存储过程 我已经一遍又一遍地阅读文档 但不幸的是Typesafe 上的纯 SQL 文档 http slick typesafe com doc 3 0 0 sql
  • 播放框架根据环境覆盖“application.conf”值

    玩 2 6 x Scala 我有一个默认的application conf文件夹内 project conf 但我想根据环境通过传递相应的文件作为命令行参数来覆盖一些值 如文档中详述 https www playframework com
  • 在 Play 框架中使用缓存

    我正在尝试实现一个测验应用程序 该应用程序使用 ajax 将问题一一加载 当用户单击 到下一个问题 按钮时 他 她的答案将保存在缓存中 但是当我调试时 缓存列表始终为空 此代码创建第一个缓存数组 public static void vie
  • 玩 Scala 和线程安全

    该项目是使用编写的Play framework and Scala语言 我已经实施了compile time dependency 我按照 Play 中的这个例子进行操作 https github com playframework pla
  • 创建通用 Json 序列化函数

    是否可以使用 Play Framework 2 2 在 Scala 中创建一个通用函数 将任意对象序列化为 JSON 而无需提供编写器或格式化程序 例如 此非通用代码将创建给定客户的 JSON 响应 import play api libs
  • 为什么我的 akka 日志记录不能在游戏中运行

    我的日志记录在我的播放代码中工作正常 但我的 akka 代码没有记录到文件 标准输出 class EmailActor extends Actor with ActorLogging import EmailActor log info e
  • playframework 全局设置 @Required 字段的自定义消息

    我正在寻求有关翻译 Play 框架 2 2 中的验证消息的帮助 我有必填字段 FE Required message To pole jest wymagane public String miesiac Required public S
  • Intellij IDEA 无法使用 Play 框架解析符号

    我正在使用 IDEA 13 和 Play 2 2 1 并且正在做示例游玩地点 http www playframework com documentation 2 2 x JavaTodoList public static Result
  • sbt 程序集中的合并策略和缺少的应用程序加载器

    我正在开发一个 Play Web 应用程序 我希望能够使用 sbt 程序集将其部署为 fat jar 在调试中运行应用程序时 我可以识别 guice 库 因为它已添加到我的 build sbt 文件中 libraryDependencies
  • 使用 SAML 2.0 进行 Scala Play Web 应用程序的 SSO

    我正在构建一个 scala play Web 应用程序 我需要使用支持 SAML v2 0 的 IdP 构建 SSO 功能 除了 SSO 之外 我还需要根据从 IdP 收到的角色 作为身份验证断言消息的属性 在应用程序内构建授权机制 我是
  • Play2 的异常无法在 postgresql 上运行

    我发现play2的anorm的行解析器依赖于jdbc驱动程序返回的元数据 所以在play提供的内置示例 zentasks 中 我可以找到这样的代码 object Project val simple get Pk Long project
  • 如何访问 Play Guice 模块中的请求?

    我正在编写一个处理多个系统的应用程序 用户可以选择他想要使用的系统 我将该系统 ID 存储在会话 客户端会话 中 现在我有服务课程 比如说客户服务 class CustomerService val systemID String Impl

随机推荐

  • 跳过没有装饰器语法的单元测试

    我有一套使用 TestLoader 的 来自单元测试模块 loadTestsFromModule 方法加载的测试 即 suite loader loadTestsFromModule module 这给了我一个非常充足的 运行良好的测试列表
  • 在Android模拟器中添加铃声

    有谁知道如何向 Android 模拟器添加 下载铃声或 mp3 声音 Go to DDMS in Eclipse 点击File Explorer选项卡并导航至mnt sdcard 单击创建新文件夹Plus图标称为ringtones 然后单击
  • 哪里可以找到 Android 示例?

    我检查了谷歌开发者网站上的一些 Android 开发练习和示例 我发现了这个网页 http developer android com tools samples index html http developer android com
  • Haskell - 非法多态类型?

    为什么该类型单独使用可以编译 但放入列表却失败 ft1 Foldable t Num a gt t a gt a ft1 F foldl 0 fTest Foldable t Num a gt t a gt a fTest F foldl
  • Django Cripy-Forms 找不到 CSS

    我正在使用 Django 和 Crispy Forms 我可以正确呈现表单 但不会出现 CSS 格式 我需要做什么 我已经添加了 CRISPY TEMPLATE PACK bootstrap to my settings py file h
  • 如何让 django 在继续完成与请求相关的任务之前给出 HTTP 响应?

    在我的 django 活塞 API 中 我想在调用另一个需要相当长的时间的函数之前向客户端产生 返回一个 http 响应 如何使yield 给出包含所需JSON 的HTTP 响应 而不是与生成器对象创建相关的字符串 我的活塞处理程序方法如下
  • 如何读取属性文件并使用项目 Gradle 脚本中的值?

    我正在开发一个 Gradle 脚本 我需要阅读local properties文件并使用属性文件中的值build gradle 我正在按照以下方式进行操作 我运行了下面的脚本 它现在抛出一个错误 但它也没有执行任何操作 例如创建 删除和复制
  • Django-CKEditor 不会渲染图像

    我已经安装了 Django CKEditor 并对其进行了配置以用于开发目的 现在我可以编辑文本并将其作为文本字段保存到数据库中 但是在插入图像时我遇到了很大的问题 我可以插入图像 它似乎可以正确保存到本地主机 正确的文件夹 但是当将图像渲
  • 如何更改 setInterval 和 setTimeout 函数中“this”的范围

    怎么可能使用this代替setInterval and setTimeout calls 我想这样使用它 function myObj this func function args setTimeout function this fun
  • 如何解决Require.js中的循环依赖?

    基本上 这个想法是 子 模块创建一个对象 并且该对象应该是作为 主 模块的实用程序库的一部分 然而 子 对象depends关于 main 的实用程序 Main module define sub function sub var utils
  • NameError:未初始化的常量 Bundler

    我刚刚将我的网络服务器更改为 Puma 并且必须将我的开发数据库从 sqlite 更改为 postgresql 但现在每次我尝试运行 rake db migrate 时都会收到此错误 rake aborted NameError unini
  • 为 ObjectContext 创建接口

    我正在尝试创建一个抽象层ObjectContext 我理解 OC 是一个工作单元 但我并不完全了解如何为它编写一个好的界面 理想情况下 我希望能够交换实现的 RealDataContext IDataContext对于像 FakeDataC
  • 求解 a^3 + b^4 = c^3 + d^3 最佳运行时间

    注意 这个问题不同于写出 a 3 b 3 c 3 d 3 的所有解 https stackoverflow com questions 14454133 write all solutions for a3 b3 c3 d3因为我需要帮助理
  • SQL 如果 select 语句不返回任何行,则执行替代 select 语句

    基本上 什么语法可以让我实现标题声明 If select statement 1 returns 0 rows THEN select statement 2 else select statement 3 以便 sql 返回语句 2 或
  • 将图库中的所有图像加载到 android 中的应用程序中

    我正在创建一个应用程序 其中我需要图库中的所有图像到我的应用程序中 其中有一个 girdview 我希望所有文件夹中的所有图像都显示在网格视图中 String proj MediaStore Images Media DATA MediaS
  • 如何从 pytorch 模块获取子模块序列?

    对于火炬module https pytorch org docs master generated torch nn Module html 我想我可以用 named children named modules等来获取子模块的列表 但是
  • 为什么 d3.js v3 在实现缩放时会破坏我的力图,而 v2 不会?

    我有一个使用 d3 js 创建的强制布局 我希望同时拥有可拖动力布局的正常功能以及缩放功能 我基本上已经从 http jsfiddle net nrabinowitz QMKm3 http jsfiddle net nrabinowitz
  • 在 SQL Server 日期时间字段中格式化日期时间的正确方法是什么

    我在 C 中有一个 dateTime 对象 我想插入 SQL Server 日期时间字段 正确的格式是什么 正确的方法是使用参数化查询 not文本格式 然后你就可以使用强类型SqlDbType DateTime http msdn micr
  • 反应本机平面列表不滚动

    我已经使用 FlatList 很多次了 但从未有过这样的经历 我有一个视图 页面顶部有一个图像 而我的列表在下面 当我尝试滚动时 列表弹到顶部 对此找不到好的解决方案 这是我的清单
  • 在 Play Framework 中使用 POST 路由参数

    我有一个登录路由 应将其输入参数作为 POST 变量传输 我已经这样定义了我的路线 POST v1 accounts login controllers v1 Accounts login username String password