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();
我正在尝试使用 Microsoft Graph SDK (C#) 根据名称获取组。
使用此代码:
var message = graphClient.Groups
.Request()
.Filter($"startswith(displayName, '#Group 1')");
var request = message.GetHttpRequestMessage().RequestUri;
为 API:
提供了一个有效的 URIhttps://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();