Rest API GET请求参数构造求助:含特殊字符字段传递问题
解决ServiceNow REST API GET请求中含特殊字符字段的查询问题
对字段名做URL编码
GET请求的参数会拼在URL里,空格、括号这类特殊字符属于URL保留字符,必须编码后才能被正确识别:- 空格 →
%20 - 左括号
(→%28 - 右括号
)→%29
比如你要查的assigned_to (need the empid),编码后变成assigned_to%20%28need%20the%20empid%29
- 空格 →
构造正确的请求参数
把编码后的字段名和其他字段用逗号分隔,放在sysparm_fields里。比如同时查number和目标字段的参数写法:sysparm_fields=number,assigned_to%20%28need%20the%20empid%29
完整的请求URL示例:https://<你的ServiceNow实例名>.service-now.com/api/now/table/incident?sysparm_fields=number,assigned_to%20%28need%20the%20empid%29确认字段的后台真实名称
注意ServiceNow界面显示的字段名(标签)和后台数据库里的字段名可能不一样。比如你看到的assigned_to (need the empid)可能只是显示用的标签,后台真实字段名可能是不带特殊字符的(比如assigned_to_empid)。
查真实字段名的方法:在ServiceNow系统里找到该字段的配置页面,查看「数据库名称」(Database Name)字段,这个才是API请求中应该使用的名称。如果后台字段名确实带特殊字符,再用URL编码的方法处理。测试工具推荐
可以用Postman或者curl快速验证请求是否有效,比如curl命令:curl -u "你的账号:密码" "https://<实例名>.service-now.com/api/now/table/incident?sysparm_fields=number,assigned_to%20%28need%20the%20empid%29"
内容的提问来源于stack exchange,提问作者Sathya
相关产品推荐
相关产品推荐

