如何从Microsoft Graph API调用响应中获取Request Id?
从Microsoft Graph SDK响应中获取Request ID
要获取Graph API调用的Request ID,需要从HTTP响应头中提取x-ms-request-id字段。默认的GetAsync()方法仅返回实体数据,无法直接获取响应头,因此需要改用SendAsync方法获取完整的HTTP响应对象,再从中提取请求ID。
针对获取组传递成员的代码修改
原代码仅获取成员数据,修改后可同时获取Request ID:
// 发送请求并获取完整HTTP响应 var httpResponse = await graphClient .Groups[groupId] .TransitiveMembers .Request() .Top(999) .SendAsync(HttpMethod.Get, null); // 提取Request ID if (httpResponse.Headers.TryGetValues("x-ms-request-id", out var requestIds)) { var requestId = requestIds.FirstOrDefault(); // 此处可对requestId进行打印、存储等操作 } // 若仍需要成员数据,反序列化响应内容 var members = await httpResponse.Content.ReadAsAsync<IGraphServiceTransitiveMembersCollectionPage>();
针对组Delta查询的代码修改
同理,修改Delta查询代码以获取Request ID:
// 发送请求并获取完整HTTP响应 var httpResponse = await graphClient .Groups .Delta() .Request() .Select("members") .Filter($"id eq '{groupId}'") .SendAsync(HttpMethod.Get, null); // 提取Request ID if (httpResponse.Headers.TryGetValues("x-ms-request-id", out var requestIds)) { var requestId = requestIds.FirstOrDefault(); // 此处可对requestId进行打印、存储等操作 } // 若仍需要Delta响应数据,反序列化响应内容 var deltaResponse = await httpResponse.Content.ReadAsAsync<IGraphServiceGroupsDeltaCollectionPage>();
内容的提问来源于stack exchange,提问作者user989988
相关产品推荐
相关产品推荐

