【问题标题】:Getting response headers from Beta Graph Api Call using C# SDK使用 C# SDK 从 Beta Graph Api Call 获取响应标头
【发布时间】:2020-06-26 10:57:54
【问题描述】:

我正在使用 Beta Graph API 创建团队频道。

根据 beta Docs,这将返回一个 202 和指示团队 ID 的标题

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams/{teamId}/operations/{operationId}
Content-Location: /teams/{teamId}
Content-Length: 0

我的代码

 var team = new Team
    {
        DisplayName = className,
        Description = description,
        AdditionalData = new Dictionary<string, object>()
        {
            {"template@odata.bind", "https://graph.microsoft.com/beta/teamsTemplates('educationClass')"},
        },
        Owners = new TeamOwnersCollectionWithReferencesPage() { new User() { Id = ownerId } }
    };
   
       await graphClient.Teams
      .Request()
      .AddAsync(team, cancellationToken);

AddAsync 返回的响应似乎总是为空,而且似乎没有办法通过 SDK 访问标头。我现在必须跳过冗长的圈子才能获得 ID。

有没有办法得到这个?

【问题讨论】:

  • 首先使用嗅探器并查看实际响应。您只能获取您在嗅探器中看到的信息。您可能还想从浏览器捕获结果以查看是否获得相同的结果。通常如果数据丢失,您需要修改您的请求并添加标头以更改响应中的内容。
  • @jdweng 作为文档所述,此特定请求没有响应正文,只有一组标头指示我需要的信息。我正在使用图形 SDK(不是直接使用 HttpClient),似乎无法访问它们。

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


【解决方案1】:

您可以像下面这样获取已保存团队的 id 值。

var x = response.Content.Headers.GetValues("Content-Location");

你明白了,/teams/{teamId} 格式是这样的。

【讨论】:

  • 如我的问题中所述,我正在使用 SDK。不是 HTTP 客户端
猜你喜欢
  • 1970-01-01
  • 2016-09-02
  • 2013-04-06
  • 2013-05-11
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多