You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python向Apache Druid发送POST请求遇405错误的技术问询

解决Druid API POST请求返回405的问题

首先看你代码里的一个明显错误:URL拼写错误,你写的是"someurl:8888/durid/v2/sql",这里把druid拼成了durid,这会导致请求发送到一个不存在的端点,服务器返回405(方法不允许)是很正常的。

修正后的代码应该把URL里的durid改成druid,另外建议加上协议头(http://或https://),避免requests库解析URL时出现异常:

payload = {
    "query": "select count(1) from table1",
    "resultFormat": "array",
    "header": True,
    "typesHeader": True,
    "sqlTypesHeader": True,
    "context": {
        "somekeys":"somevalues"
    }
}

# 修正拼写并添加协议头
druidURL = "http://someurl:8888/druid/v2/sql"

x = requests.post(druidURL, json=payload)
# 可打印响应内容进一步排查
print(x.status_code)
print(x.text)

如果修正后还是返回405,再排查以下几点:

  • 确认Druid集群的SQL API端点路径是否正确,官方标准路径是/druid/v2/sql,但部分自定义部署可能有修改。
  • 检查目标服务器是否有反向代理(比如Nginx),是否对请求方法做了限制,导致POST被拦截。
  • 对比控制台请求的完整URL(包括协议、端口),确保代码里的URL和控制台完全一致。

内容的提问来源于stack exchange,提问作者chuhui chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:25:48