Azure DevOps UserEntitlements API含单引号过滤值请求失败
Azure DevOps UserEntitlements API 含单引号过滤值的报错解决
问题场景
使用Azure DevOps的UserEntitlements REST API时,当filter参数的字符串值包含单引号,请求会触发语法错误。
请求示例
https://vsaex.dev.azure.com/{Myorganization}/_apis/userentitlements?$filter=name+eq+'Gary D'Jessi'&api-version=5.1-preview.3
错误响应
{ "$id": "1", "innerException": null, "message": "Invalid filter: \"name eq 'Gary D'Jessi'\"", "typeName": "Microsoft.VisualStudio.Services.WebApi.Exceptions.InvalidQueryStringException, Microsoft.VisualStudio.Services.WebApi", "typeKey": "InvalidQueryStringException", "errorCode": 0, "eventId": 3000 }
解决方案
Azure DevOps的OData过滤遵循OData v4规范,字符串中的单引号需要用两个连续的单引号转义(而非反斜杠),同时确保URL参数编码正确:
- 将目标字符串中的单个单引号替换为两个单引号:
Gary D'Jessi→Gary D''Jessi - 整合到filter参数中,确保空格替换为
+或编码为%20
修正后的请求URL示例
https://vsaex.dev.azure.com/{Myorganization}/_apis/userentitlements?$filter=name+eq+'Gary+D''Jessi'&api-version=5.1-preview.3
或者使用完整URL编码格式:
https://vsaex.dev.azure.com/{Myorganization}/_apis/userentitlements?$filter=name%20eq%20%27Gary%20D%27%27Jessi%27&api-version=5.1-preview.3
这样调整后,过滤语法即可被正确解析,避免报错。
内容的提问来源于stack exchange,提问作者Joe_12345
相关产品推荐
相关产品推荐

