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

调用FedEx Track API查询追踪状态时遭遇422错误(INVALID.INPUT.EXCEPTION)求助

问题排查与修复

你的代码存在两个明确问题,直接导致了422输入错误:

1. 请求体传递格式错误

你调用requests.post时使用了data=payload,但请求头已经指定Content-Type: application/json。data参数会将Python字典编码为表单格式(application/x-www-form-urlencoded),而FedEx API要求接收JSON格式的请求体。

需将data=payload替换为json=payload,requests会自动完成字典到JSON字符串的序列化,匹配API的格式要求。

2. includeDetailedScans参数类型不符

FedEx Track API中includeDetailedScans是布尔类型参数,你传入的数字1不符合类型要求,需改为布尔值True(对应JSON结构中的true)。

修正后的代码

authoriztion_key = get_oauth()

url = f"{sandbox_url}/track/v1/trackingnumbers"

payload = {
          "trackingInfo": [
            {
              "trackingNumberInfo": {
                "trackingNumber": f"{tracking_number}"
              }
            }
          ],
          "includeDetailedScans": True  # 修改为布尔值
        }

headers = {
    'Content-Type': "application/json",
    'x-locale': "en_US",
    'Authorization': f'Bearer {authoriztion_key}'
}

print(f"\nEnpoint: {url}")
print(f'\nPayload: {payload}')
print(f'\nHeaders: {headers}')

# 替换data参数为json
response = requests.post(url, json=payload, headers=headers)
print(f'\nStatus: {response.status_code}')
print(f'Response: {response.json()}')

如果修正后仍有问题,可进一步检查追踪号码是否符合FedEx沙箱环境的测试规则(沙箱需使用官方指定的测试追踪号,不能用真实生产环境号码)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:00:07