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

Graph API $filter传入含单引号等特殊字符的搜索值报错如何解决

问题原因

Graph API 遵循 OData 协议的查询语法规则,$filter 中字符串字面量内的单引号需要转义为两个连续的单引号,否则会触发语法解析异常。

修复方案

对搜索参数中的单引号提前做转义处理后再拼接查询条件,修改后的代码如下:

var graphClient = await GetGraphClient();
List<QueryOption> queryOptions = new List<QueryOption>();
// 转义搜索值中的单引号,符合OData字符串语法要求
string escapedSearch = search.Replace("'", "''");
queryOptions.Add(new QueryOption("$filter", string.Format("startswith(displayName,'{0}')", escapedSearch)));
var collection = await graphClient.Data.Request(queryOptions).GetAsync();

补充说明

  • 上述转义方式可直接解决单引号场景的报错,Microsoft Graph 官方SDK会自动对查询参数做URL编码,不需要额外处理其他URL特殊字符
  • 如果查询逻辑复杂度较高,也可以选择用SDK支持的LINQ表达式生成$filter条件,避免手动拼接字符串引发的语法问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:21:02