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

Python Requests调用API报400错误,http.client却可正常请求

问题:Postman可正常调用的私有API,使用Requests库返回400错误

我尝试调用一个私有API,请求内容已做模糊处理。该请求在Postman中能正常运行,但将Postman生成的代码复制到VS Code后无法工作:

import json
import requests

url = "https://myapi.com/v1/search"
payload = json.dumps({
    'username': 'user',
    'start_date' : '01/01/2023T16:06:40+00:00',
    'end_date' : '01/02/2023T16:06:40+00:00'
})
headers = {
    'Authorization': 'Bearer XXXX',
    'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, data=payload)
response.raise_for_status()
print(response.json())

错误信息:

response.raise_for_status()
  File "C:\Users\XXXX\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error:  for url: https://myapi.com/v1/search

但使用http.client库发起请求却能成功:

import json
import http.client

conn = http.client.HTTPSConnection("myapi.com")
payload = json.dumps({
    'username': 'user',
    'start_date' : '01/01/2023T16:06:40+00:00',
    'end_date' : '01/02/2023T16:06:40+00:00'
})
headers = {
    'Authorization': 'Bearer XXXX',
    'Content-Type': 'application/json'
}
conn.request("POST", "/v1/search", payload, headers)
res = conn.getresponse()
data = res.read()
print(res.getcode())
print(data.decode("utf-8"))

我已尝试以下方案,但问题依旧:

  • 将payload传入request的json参数,即requests.post(url, headers=headers, json=payload)
  • 在headers中添加{"User-Agent": "PostmanRuntime/7.30.0"}
  • 在请求中加入verify=False
  • 尝试使用requests.Session:
import json
import requests

s = requests.Session()
url = "https://myapi.com/v1/search"
s.headers = {
    'Authorization': 'Bearer XXXX',
    'Content-Type': 'application/json'
}
payload = json.dumps({
    'username': 'user',
    'start_date' : '01/01/2023T16:06:40+00:00',
    'end_date' : '01/02/2023T16:06:40+00:00'
})
response = s.post(url, data=payload)
response.raise_for_status()
print(response.json())

Python版本:3.9.7
Requests版本:2.28.1

希望能得到解决思路!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:01:36