我们正在尝试将长度大于4096字节的GET和POST请求发送到使用Playframework 2.2.6实现的REST API。
经过长时间的谷歌研究,我们尝试了几乎所有的东西,解决方案似乎是通过播放启动我们的服务器时传递以下两个参数。我们没有收到有关错误参数的错误消息,但是当我们向api发送大量请求时,我们仍然收到错误
TooLongFrameException: An HTTP line is larger than 4096 Bytes
我们通过以下命令运行服务器
<PathToPlay>\play-2.2.6\play.bat -org.jboss.netty.maxHeaderSize:102400 -org.jboss.netty.maxInitialLineLength:102400 run
答案 0 :(得分:1)
首先,您启动应用程序的路径似乎已关闭。当create a new play application在项目根文件夹中自动创建play.bat
或activator.bat
文件时。因此,无需在项目文件夹外调用特定的播放安装运行时。
http.netty.maxInitialLineLength
- HTTP请求初始行的最大长度,默认为4096
http.netty.maxHeaderSize
- 整个HTTP标头的最大大小,默认为8192
以开发模式调用
启动应用程序/path/to/project/play run -Dhttp.netty.maxInitialLineLength=102400 -Dhttp.netty.maxHeaderSize=102400
如果您使用Activator创建项目,请将play
替换为activator
。
使用play dist
生成published your application之后,您可以通过调用
/path/to/publishedApp/bin/<nameOfApp> -Dhttp.netty.maxInitialLineLength=102400 -Dhttp.netty.maxHeaderSize=102400