如何在Postman或Python Requests中同时使用API Key与Basic Auth?
同时使用Basic Auth与API Key的实现方法
Postman 操作步骤
Postman的预设认证面板只能选一种类型,但可以通过手动补充请求头实现双重认证:
- 方案1:优先用Basic Auth面板,手动添加API Key头
- 进入请求的「Authorization」标签,选择「Basic Auth」类型,填写用户名和密码,Postman会自动生成
Authorization: Basic xxx请求头 - 切换到「Headers」标签,手动添加API Key对应的字段(比如
X-API-Key: 你的密钥,具体字段名以API文档要求为准)
- 进入请求的「Authorization」标签,选择「Basic Auth」类型,填写用户名和密码,Postman会自动生成
- 方案2:用API Key面板,手动构造Basic Auth头
- 在「Authorization」标签选择「API Key」类型,设置对应的键名和密钥值,Postman会自动添加该请求头
- 自行计算Basic Auth编码:将
用户名:密码字符串用Base64编码,然后在「Headers」标签添加Authorization: Basic 编码后的字符串
Python requests 实现代码
requests库支持同时配置Basic Auth和API Key,两种写法都可行:
写法1:用requests内置auth参数处理Basic Auth
import requests # 替换为实际的API地址、密钥、用户名和密码 api_url = "https://your-api-endpoint.com/path" api_key = "your_api_key_here" basic_auth_credentials = ("your_username", "your_password") # 构造API Key请求头(字段名以API文档为准) request_headers = { "X-API-Key": api_key } # 发送请求,同时传入auth和headers参数 response = requests.get(api_url, auth=basic_auth_credentials, headers=request_headers) # 验证响应 print(f"状态码: {response.status_code}") print(f"响应内容: {response.json()}")
写法2:手动构造所有认证头
import requests import base64 api_url = "https://your-api-endpoint.com/path" api_key = "your_api_key_here" username = "your_username" password = "your_password" # 手动生成Basic Auth的Base64编码 auth_string = f"{username}:{password}" auth_base64 = base64.b64encode(auth_string.encode("utf-8")).decode("utf-8") # 同时包含两种认证的请求头 request_headers = { "Authorization": f"Basic {auth_base64}", "X-API-Key": api_key } response = requests.get(api_url, headers=request_headers) print(f"状态码: {response.status_code}") print(f"响应内容: {response.json()}")
内容的提问来源于stack exchange,提问作者abinitio
相关产品推荐
相关产品推荐

