PowerShell可正常调用REST登录接口,Python调用遇405/415错误求助
解决Python调用API时的405/415错误
你的PowerShell代码通过POST请求发送JSON格式的认证数据,同时携带X-API-KEY请求头,完全符合API要求,因此能成功返回200状态码。而你最初的Python代码存在两个核心问题:
- 使用了GET请求,不符合API要求的POST方法,导致405错误
- 未按API要求发送JSON格式的请求体,也未设置正确的
Content-Type,导致415错误
以下是和PowerShell逻辑完全对齐的Python代码:
import requests # 替换为你的实际参数 username = "user1" password = "pass1" api_key = "你的API密钥" login_url = "http://URLSystem/login" # 构造JSON格式的认证体,对应PowerShell中的$auth auth_payload = { "username": username, "password": password } # 设置请求头,包含API密钥,对应PowerShell中的$hdrs request_headers = { "X-API-KEY": api_key } # 发送POST请求,requests的json参数会自动处理JSON序列化并设置Content-Type为application/json response = requests.post(login_url, json=auth_payload, headers=request_headers) # 打印响应状态码和返回内容 print("状态码:", response.status_code) print("响应内容:", response.json())
关键说明:
- 使用
requests.post方法,匹配API要求的POST请求方式,解决405错误 - 通过
json=auth_payload传递认证数据:requests会自动将Python字典转换为JSON字符串,并自动添加Content-Type: application/json请求头,解决415错误 - 显式添加
X-API-KEY请求头,和PowerShell中的逻辑保持一致
内容的提问来源于stack exchange,提问作者nsaint
相关产品推荐
相关产品推荐

