使用ansible.builtin.win_uri调用ServiceNow API遇400错误求助
排查ServiceNow PATCH请求400错误的方向
修正Debug变量,获取完整错误信息
你当前debug的是result,但任务里register的变量是RESULT_update_ticket,把debug任务改成下面这样,才能拿到ServiceNow返回的具体错误详情(比如字段不匹配、格式错误的具体描述),这是排查400错误最关键的一步:- debug: var: RESULT_update_ticket验证请求体字段与自定义API的匹配性
你的URL指向的是自定义REST端点(<ORG>_incident),而非ServiceNow原生的incident API,必须确认两个点:- 自定义API是否接受
comments作为可修改字段 - 请求体是否需要嵌套结构(比如
{"record": {"comments": "Test comment from ansible"}}),而非直接用顶级字段
- 自定义API是否接受
改用字典形式传递请求体
win_uri模块在content_type: application/json时,推荐直接用Ansible字典作为body参数,让模块自动处理JSON序列化,避免手动写字符串可能出现的换行、转义等格式问题:body: comments: "Test comment from ansible"确认URL路径参数的正确性
检查自定义API是否支持用incident_number(比如INC0012345)作为路径参数,还是需要用工单的sys_id。ServiceNow原生API默认用sys_id,自定义端点可能有不同要求。验证账号权限
虽然已登录,但要确认所用账号是否拥有修改该incident工单的权限,以及是否有权限访问这个自定义REST端点。补充必要的请求头
部分ServiceNow端点可能要求额外的请求头,比如X-Requested-With: XMLHttpRequest,可以尝试添加到headers中:headers: Accept: application/json X-Requested-With: XMLHttpRequest
内容的提问来源于stack exchange,提问作者DJ K
相关产品推荐
相关产品推荐

