Presto 333版本v1/query接口报405错误,是否变更REST API URL?
Presto 333+ 查询API端点变更说明
没错,Presto从333版本开始,确实修改了提交查询的REST API URL,这就是你遇到405 Method Not Allowed错误的原因。
具体变更细节:
- 旧版本(332及之前):提交查询可以用
POST请求访问/v1/query/(注意末尾的斜杠),也支持GET方式(不推荐,因为查询参数可能过长)。 - 新版本(333及之后):提交查询的正确端点是不带末尾斜杠的
/v1/query,并且仅支持POST方法(GET请求会直接返回405)。
验证方法:
你可以用curl命令测试一下:
curl -X POST \ -H "X-Presto-User: your_username" \ -H "Content-Type: application/json" \ -d '{"query": "SELECT * FROM system.runtime.nodes LIMIT 1"}' \ http://localhost:8080/v1/query
如果请求成功,会返回包含查询ID的JSON响应;如果还是用带斜杠的/v1/query/,就会触发405错误。
额外注意点:
- 确保请求头里的
Content-Type设置为application/json,因为新版本要求查询体必须是JSON格式(旧版本可能支持表单格式,现在也不再兼容了)。 - 所有其他API端点(比如获取查询状态
/v1/query/{queryId}、取消查询/v1/query/{queryId})的URL规则没有变化,依然保持原来的格式。
内容的提问来源于stack exchange,提问作者user2928137
相关产品推荐
相关产品推荐

