使用Microsoft Graph获取MailBoxUsageDetails时遇到JsonReaderException

时间:2019-06-17 00:36:39

标签: c# microsoft-graph microsoft-graph-sdks

我正在跟踪https://docs.microsoft.com/en-us/graph/api/reportroot-getmailboxusagedetail?view=graph-rest-1.0&tabs=cs上的GetMailBoxUsageDetail文档,并且得到了JsonReaderException。

完整的错误消息如下:JsonReaderException:解析值:R。路径”,行0,位置0时遇到意外字符。

我已验证我具有适当的应用程序权限。我还使用了Fiddler,看到内容流已返回给客户端应用程序,但是Microsoft Graph API似乎试图将内容反序列化为Json(如果不是)。

    public IActionResult Index()
    {
        var report = GetMailBoxUsageDetailAsync().Result;
        return View();
    }


    public async Task<Report> GetMailBoxUsageDetailAsync(string period = "D7")
    {
        var graphClient = new GraphServiceClient(new MsalAuthenticationProvider());

        var report = await graphClient.Reports.GetMailboxUsageMailboxCounts(period)
            .Request()
            .GetAsync();

        return report;

     }

我期望返回以下标题的流内容:报告刷新日期,用户主体名称,显示名称,已删除,删除日期,创建日期,最后活动日期,项目计数,已用存储(字节),问题警告配额(字节),禁止发送配额(字节),禁止发送/接收配额(字节),报告期

1 个答案:

答案 0 :(得分:1)

实际上,这似乎是反序列化响应有效负载的错误,并且会影响Mailbox usage reports的所有端点

  

至少可以复制msgraph-sdk-dotnet版   1.15.0

在此问题得到解决之前,可以考虑使用以下解决方案:

//Construct and send a request 
var requestUrl = graphClient.Reports.GetMailboxUsageMailboxCounts("D7").Request().RequestUrl;
var request = new HttpRequestMessage(HttpMethod.Get, requestUrl);
await graphClient.AuthenticationProvider.AuthenticateRequestAsync(request);
var response = await graphClient.HttpProvider.SendAsync(request);

// Get the csv report data
var csvData = await response.Content.ReadAsStringAsync();