Azure Graph API Batch中POST请求返回BadRequest错误求助
解决Azure Graph API Batch中GetMemberGroups的BadRequest错误
问题出在GetMemberGroups作为POST请求,必须携带请求体,你的代码只设置了Content-Type头,却没有添加必要的请求体内容,导致批量请求中的该步骤缺失body,触发报错。
修改代码如下,通过Graph SDK正确构建带请求体的POST请求:
// 创建GetMemberGroups的请求体对象 var requestBody = new GetMemberGroupsPostRequestBody { SecurityEnabledOnly = false }; // 构建带请求体的POST请求,获取底层HttpRequestMessage用于批量请求 var groupRequest = await graphServiceClient.Users[emailId] .GetMemberGroups .Request() .PostAsync(requestBody) .ConfigureAwait(false); var requestMessage = groupRequest.HttpRequestMessage; var batchRequestContent = new BatchRequestContent(); var groupRequestId = batchRequestContent.AddBatchRequestStep(requestMessage); var returnedResponse = await graphServiceClient.Batch.Request().PostAsync(batchRequestContent).ConfigureAwait(false);
关键说明
GetMemberGroups对应的POST请求需要传递securityEnabledOnly参数作为请求体,必须通过GetMemberGroupsPostRequestBody对象序列化后传入- 直接手动修改
groupRequest.Method的方式不会自动添加请求体,而通过PostAsync(requestBody)生成的请求会自动包含正确的Content-Type头和请求体,无需手动设置Header - 批量请求中的POST步骤必须同时包含Content-Type头和请求体,两者缺一都会触发BadRequest错误
内容的提问来源于stack exchange,提问作者Manognya
相关产品推荐
相关产品推荐

