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

在ASP.NET中调用Microsoft Graph API搜索邮件时处理双引号问题

解决ASP.NET中Microsoft Graph API搜索URL的反斜杠问题

你的问题出在C#字符串的转义处理上——当前写法会把转义用的反斜杠也包含在最终发送给API的URL里,而Graph API需要的是不带反斜杠的引号格式,因此返回了BadRequest。

下面是几种可行的解决方法:

方法1:使用C#逐字字符串(@前缀)

逐字字符串会忽略转义字符,只需用两个连续双引号表示一个实际的双引号,构造出的URL不会包含多余反斜杠:

sRestURL = @"https://graph.microsoft.com/v1.0/users/USER@MAILBOX.COM/mailFolders/inbox/messages?$search=""from:greet""&$expand=singleValueExtendedProperties($filter=Id eq 'LONG 0x0E08')&$count=true";

这段代码生成的URL中,$search参数部分为"from:greet",完全符合Graph API的要求。

方法2:手动修正转义逻辑

如果不想用逐字字符串,可以调整引号的转义方式,确保最终字符串里的双引号无需额外嵌套转义:

sRestURL = "https://graph.microsoft.com/v1.0/users/USER@MAILBOX.COM/mailFolders/inbox/messages?$search=\"from:greet\"&$expand=singleValueExtendedProperties($filter=Id eq 'LONG 0x0E08')&$count=true";

之前的错误是因为在from:后额外添加了一层带转义的双引号,导致URL中出现多余反斜杠,修正后即可避免这个问题。

额外注意事项

使用$count=true时,必须在请求头中添加ConsistencyLevel: eventual,否则Graph API同样会返回错误,这是容易忽略的细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:40:05