我正在使用 Play 框架 (Java)
为我的应用程序创建 REST
API。
我遇到了 REST API
与 GET
的长度问题。
我需要使用以下网络方法:
public static Result getregistereduser(String userlist)
{
//userlist is string of user numbers seperated by "$" ,
.....
....
}
在我有的 route :
GET /getregistereduser controllers.Application.getregistereduser(userlist)
我面临的问题是当用户列表很大时它只需要部分字符串。
最佳答案
我不确定您使用的是哪个版本的 Play,但 Play 不应截断长 GET 请求。如果 GET 请求太大而无法处理,您应该会收到错误响应。
直到最近,该错误仍是由 org.jboss.netty.handler.codec.frame.TooLongFrameException
引起的 500 内部服务器错误
。 With Play 2.3.0 (尚未发布)您将收到 414 Request URI too long
响应。
Play继承了Netty的HTTP头解析。 header 的第一行 (GET/path HTTP/1.1
) 默认情况下最多可达 4096 字节。这可以通过 http.netty.maxInitialLineLength 系统属性进行配置(请参阅此 mailing list thread )。
我同意您的 HTTP 客户端很可能出现问题。我建议使用调试代理,例如 Charles (或免费替代方案)来准确查看您的客户端发送的 HTTP 请求。
关于java - 玩法2 GET方法最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193055/