使用Python发送带Headers和参数的POST请求失败求助
问题排查与解决方案
核心错误点
你错误地将需要放在**请求头(Headers)**中的api_key和api_id放到了请求体(data参数)里,这是请求未成功的主要原因。
修正后的代码
import requests # 将api_key、api_id移至请求头 headers = { 'api_key': 'xxxxx', 'api_id': 'xxxxx' } # 请求体仅保留业务参数parameter1 data = { 'parameter1': 12 } # 发送请求并捕获响应对象,便于排查 response = requests.post(url=API_ENDPOINT, headers=headers, data=data) # 打印关键信息定位问题 print(f"请求状态码: {response.status_code}") print(f"API响应内容: {response.text}")
额外排查步骤
- 检查API地址正确性:确认
API_ENDPOINT的协议(http/https)、域名、路径无拼写错误。 - 确认请求体格式:部分API要求请求体为JSON格式,此时需将
data=data替换为json=data,让requests自动处理JSON序列化并设置正确的Content-Type头。 - 验证凭证有效性:确认
api_key和api_id未过期、权限匹配,且无字符拼写错误。 - 查看详细响应:通过打印
response.status_code和response.text,可以从API返回的信息中直接获取错误原因(比如凭证无效、参数格式错误等)。
内容的提问来源于stack exchange,提问作者RA.IBOY
相关产品推荐
相关产品推荐

