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

使用Python POST请求AWX API无法返回Token的问题

问题分析与解决

核心问题

你的Python请求存在两个关键问题,导致AWX API未正确识别POST请求的创建令牌意图:

  1. 使用data参数传递字典,同时设置Content-Type: application/json头——data传字典时,requests会自动将其编码为application/x-www-form-urlencoded格式,和你声明的JSON格式冲突,API无法解析到创建令牌所需的POST数据,因此返回了该接口的GET结果(个人令牌列表)。
  2. 尝试json=json.dumps(request_data)是错误用法——requests.post的json参数接受Python原生字典/列表对象,不需要手动json.dumps,手动序列化后传入会导致API收到嵌套的JSON字符串,依然无法正确解析。

正确代码写法

直接使用json参数传递原生Python字典,requests会自动处理JSON序列化和Content-Type头:

import requests

request_data = {"description": "AWX CLI Token"}
targeturl = f"{awx_url}/api/v2/users/{user_id}/personal_tokens"
# 用json参数传原生字典,无需手动设置Content-Type
response = requests.post(targeturl, verify=False, json=request_data, auth=(awx_user, awx_pass))

# 打印响应内容确认结果
print(response.json())

额外验证点

  • 检查awx_url和user_id的拼接结果,确保和curl/PowerShell中使用的URL完全一致。
  • 如果需要手动设置请求头,无需重复指定Content-Type: application/json,json参数会自动处理该头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:42:09