Microsoft Graph SDK 提供 'Invalid filter clause'

Microsoft Graph SDK gives 'Invalid filter clause'

我正在尝试使用 Microsoft Graph SDK (C#) 根据名称获取组。

使用此代码:

var message = graphClient.Groups
                              .Request()
                              .Filter($"startswith(displayName, '#Group 1')");

var request = message.GetHttpRequestMessage().RequestUri;

为 API:

提供了一个有效的 URI
https://graph.microsoft.com/v1.0/groups?$filter=startswith(displayName, '#Group 1')

在 Graph Explorer 中 returns OK。

但是如果我像这样使用 SDK 调用相同的请求:

var groups = await graphClient.Groups
                              .Request()
                              .Filter($"startswith(displayName, '#Group 1')")
                              .GetAsync();

我收到错误:

Microsoft.Graph.ServiceException: 'Code: BadRequest Message: Invalid filter clause

为什么不起作用?

根据这个问题,它应该可以工作:

主题标签“#”导致错误。可以通过URL-对组名进行编码来解决:

string urlEncodedGroupName = System.Web.HttpUtility.UrlEncode("#Group 1");

var groups2 = await graphClient.Groups
                              .Request()
                              .Filter($"startswith(displayName, '{urlEncodedGroupName}')")
                              .GetAsync();