akka “请求URI太长”:URI长度超过配置的2048个字符的限制

zqdjd7g9  于 2022-11-06  发布在  其他
关注(0)|答案(2)|浏览(290)

我有这个配置,我使用play 2. 6,我不能使用Netty和POST

play.server.akka{
    http.server.parsing.max-uri-length = 16k
    http.client.parsing.max-uri-length = 16k      
    http.host-connection-pool.client.parsing.max-uri-length = 16k      
    http.max-uri-length = 16k
    max-uri-length = 16k
}

akka.http {
  parsing {
    max-uri-length = 16k
  }
}

但抛出此异常akka.actor.ActorSystemImpl(play-dev-mode)]非法请求,响应状态为“414请求URI太长”:URI长度超过配置的2048个字符的限制

8i9zcol2

8i9zcol21#

由于您是在dev模式下运行,因此请将akka.http.parsing.max-uri-length=16k配置设置添加到命令行:

-Dakka.http.parsing.max-uri-length=16k
a1o7rhls

a1o7rhls2#

从我原来的职位在这里:https://stackoverflow.com/a/63390208/1029251
这花了我很长时间才弄清楚。不知何故,它在文档中找不到。
下面是一个可以放入application.conf的代码片段,它也可以通过环境变量进行配置,并且适用于BOTHdev和prod模式:


# Dev Mode

play.akka.dev-mode.akka.http.parsing.max-uri-length = 16384
play.akka.dev-mode.akka.http.parsing.max-uri-length = ${?PLAY_MAX_URI_LENGTH}

# Prod Mode

akka.http.parsing.max-uri-length = 16384
akka.http.parsing.max-uri-length = ${?PLAY_MAX_URI_LENGTH}

然后,您可以编辑config,或者使用已经部署的应用程序,只需设置PLAY_MAX_URI_LENGTH,它是动态配置的,无需修改命令行参数。

env PLAY_MAX_URI_LENGTH=16384 sbt run

相关问题