You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Python Requests输出特定HTTP请求参数并获取Discord API返回的message字段

解决你的两个Python Requests相关问题

1. 如何输出特定的HTTP请求参数?

如果你想查看Requests库实际发送的HTTP请求参数(比如最终拼接好的URL、请求头、请求体等),可以通过RequestPreparedRequest对象来实现——它们能帮你看到请求被发送前的最终形态,避免参数编码或拼接出错:

import requests

# 定义请求的基础信息
target_url = "https://example.com/api"
query_params = {"page": 1, "limit": 10}
custom_headers = {"User-Agent": "MyApp/2.0", "Accept": "application/json"}

# 创建Request对象
request = requests.Request(
    method="GET",
    url=target_url,
    params=query_params,
    headers=custom_headers
)

# 准备请求(自动处理参数编码、头信息合并等细节)
prepared_request = request.prepare()

# 输出你关心的特定参数
print(f"最终请求URL: {prepared_request.url}")
print(f"请求头信息: {prepared_request.headers}")
print(f"请求方法: {prepared_request.method}")

# 如果是POST请求,还可以查看请求体内容
# print(f"请求体内容: {prepared_request.body}")

2. 如何获取Discord API返回的错误信息?

你当前的代码直接打印result只会得到响应的状态码,要获取返回的JSON内容里的message字段,需要调用响应对象的.json()方法,将返回的JSON字符串转为Python字典,再提取对应字段。我帮你优化了代码,同时增加了异常处理来应对非JSON格式的响应:

import requests

code = input("Enter a code: ")
# 用f-string拼接URL更简洁易读,避免字符串拼接出错
api_url = f'https://discord.com/api/v8/entitlements/gift-codes/{code}?with_application=true&with_subscription_plan=true'
result = requests.get(api_url)

# 分情况处理响应结果
if result.ok:  # 状态码在200-399区间视为请求成功
    response_data = result.json()
    print("验证成功!返回数据:", response_data)
else:
    # 尝试解析错误信息的JSON内容
    try:
        error_info = result.json()
        print(f"错误提示: {error_info.get('message', '未获取到错误信息')}")
        print(f"错误代码: {error_info.get('code', '无错误代码')}")
    except ValueError:
        # 如果返回内容不是JSON格式,就输出状态码和原始文本
        print(f"请求失败,状态码: {result.status_code}")
        print(f"响应内容: {result.text}")

现在运行代码后,当输入无效礼品码时,就会输出Unknown Gift Code这样的具体错误信息了。

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

火山引擎 最新活动