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

调用YouTrack API创建工单时遇Unrecognized token错误求助

YouTrack API 创建工单报错解决方案

问题原因

你的代码中使用requests.post的data=postData参数时,requests会将字典编码为表单格式提交,而YouTrack API期望接收JSON格式的数据,这就导致服务器解析请求内容时出现JSON语法错误。

修正方案

方案1:使用json参数自动序列化(推荐)

requests库提供了json参数,可以直接传入字典,它会自动将字典序列化为JSON字符串,并正确适配请求格式:

import requests

postHeaders = {
    'Accept':'application/json',
    'Authorization':'Bearer <你的YouTrack令牌>',  # 注意:YouTrack授权头格式为Bearer + 令牌
    'Content-Type':'application/json'
}

postData = {
    'project':{'id':'0-5'},
    'summary':'sample',
    'description':'Sample description'
}

# 替换data为json参数
responsePost = requests.post("https://yourcompany.youtrack.cloud/api/issues", headers=postHeaders, json=postData)
print(responsePost.content)

方案2:手动序列化JSON字符串

如果需要手动控制序列化过程,可使用json.dumps()将字典转为JSON字符串后提交:

import requests
import json

postHeaders = {
    'Accept':'application/json',
    'Authorization':'Bearer <你的YouTrack令牌>',
    'Content-Type':'application/json'
}

postData = {
    'project':{'id':'0-5'},
    'summary':'sample',
    'description':'Sample description'
}

# 手动将字典转为JSON字符串
responsePost = requests.post("https://yourcompany.youtrack.cloud/api/issues", headers=postHeaders, data=json.dumps(postData))
print(responsePost.content)

额外注意事项

  • 确认Authorization头格式正确:YouTrack Cloud API要求授权头为Bearer <永久令牌>,若你的secret是令牌内容,需补充Bearer 前缀。
  • 可通过responsePost.status_code查看响应状态码,201表示工单创建成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:19:54