我已经看到了一些与此问题相关的问题。我想我已经完成了所有的工作,但我仍然得到了#34;空有效负载"错误。有谁看到缺少的东西?
我想更新某些邮件的类别。由于这篇文章我正在使用beta端点:Microsoft Graph Client SDK vs. Requesting JSONs
这是我的代码:
public async void UpdateMailCategory(GraphServiceClient graphClient, string messageId, string inbox)
{
string newCategory = @"{'categories': ['Processed']}";
try
{
// Get the request URL for adding a page.
string requestUrl = graphClient
.Users[inbox]
.Messages[messageId]
.Request()
.RequestUrl;
HttpRequestMessage hrm =
new HttpRequestMessage(new HttpMethod("PATCH"), requestUrl);
hrm.Content =
new StringContent(newCategory, Encoding.UTF8, "application/json");
// Authenticate (add access token) our HttpRequestMessage
await graphClient.AuthenticationProvider
.AuthenticateRequestAsync(hrm);
// Send the request and get the response.
HttpResponseMessage response =
await graphClient.HttpProvider.SendAsync(hrm);
}
catch (ServiceException Servex)
{
throw Servex;
}
}
当我查看hrm.content
时,它会显示:
{ System.Net.Http.StringContent }
Headers:
{
Content - Type : application / json;charset = utf - 8
Content - Length : 35
}
答案 0 :(得分:0)
您正在使用Graph Client SDK是一种相当迂回的方式,它更可能导致您头痛而不是其他任何事情。它还会导致代码更复杂。
SDK包含整个请求所需的一切。除边缘情况外,您永远不需要处理HttpProvider
或管理HttpRequestMessage
和HttpResponseMessage
实例。
以下内容将完成同样的事情(设置消息的Categories
属性),复杂程度要低得多:
public async void UpdateMailCategory(GraphServiceClient graphClient, string messageId, string inbox)
{
try
{
await graphClient
.Users[inbox]
.Messages[messageId]
.Request()
.UpdateAsync(new Message()
{
Categories = new List<string>() { "Processed" }
});
}
catch (ServiceException Servex)
{
throw Servex;
}
}
您也不应将/beta
版本用于此操作,因为/v1.0
版本支持 。您只需要利用/beta
版本来管理用户的类别,因为通常尚未。