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

Python转换Curl POST请求出现405状态码,求问题排查

问题排查与修正方案

你的POST请求返回405(方法不允许),结合提供的curl命令和代码,主要有以下几个问题需要修正:

1. URL协议与查询参数不匹配

curl命令中使用的是HTTPS协议,且URL携带了jwt=token查询参数,但你的Python代码用的是HTTP协议,且未包含该参数。服务器的路由可能仅匹配HTTPS且带jwt参数的POST请求,这是导致405的核心原因之一。

2. 请求Content-Type不一致

curl的--form参数会发送multipart/form-data类型的请求,而你使用requests.post(..., data=data)会发送application/x-www-form-urlencoded类型的请求,服务器可能只接受前者,这也会引发请求不被允许的错误。

3. ids参数格式不符

curl中ids的值是包含双引号的字符串("164,1408453"),但你的代码里直接传了不带引号的'164,1408453',参数格式不匹配可能导致服务器无法识别。


修正后的Python代码

import requests

ACCESS_TOKEN = 'hereaccesstokenstring'
# 保持ids值的双引号格式
data = {
    'ids': '"164,1408453"'
}
headers = {
    'Authorization': 'Bearer {}'.format(ACCESS_TOKEN),
    'Accept': 'application/json'
}
# 使用HTTPS协议,添加jwt查询参数,并用files参数模拟curl的--form请求格式
response = requests.post(
    'https://heretheurl?jwt=token',
    headers=headers,
    files=data
)

# 打印响应信息辅助排查
print(response.status_code)
print(response.text)

额外验证点

  • 确认URL中jwt=token的token值是否为真实有效的令牌(需匹配服务器的认证逻辑)
  • 你的GET请求能正常工作,说明Bearer token是有效的,Authorization头无需调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:37:50