【问题标题】:Http endpoint for IOT hub resource物联网中心资源的 Http 端点
【发布时间】:2019-07-24 11:54:54
【问题描述】:

如何在 azure 中获取 iot hub 的 http 端点。我需要构建一个解决方案来 ping http url 以测试 iot hub 是活动还是关闭。类似于可用性检查。

【问题讨论】:

  • 物联网中心的状态,是你想要的吗?
  • 是的状态......但是。想要在 azure 门户之外调用这个 url......

标签: c# .net azure sdk azure-functions


【解决方案1】:

因此,您可以创建一个 Azure 函数或任何您喜欢的函数,以调用此 REST API 来获取状态。示例响应将是这样的

{
  "totalDeviceCount": 0,
  "enabledDeviceCount": 0,
  "disabledDeviceCount": 0
}

要针对AZURE API 进行身份验证,您需要先获取BEARER 令牌。 示例:

private const string Resource = "https://management.azure.com/";
string authority = $"https://login.windows.net/"TenantId";
var authContext = new AuthenticationContext(authority);
var credential = new ClientCredential("ClientId", "ClientSecret");
var authResult = authContext.AcquireTokenAsync(Resource, credential).Result;
var httpClient = new HttpClient();

现在,当您调用任何 azure 资源 api 时,传递不记名令牌

httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + authResult.AccessToken);

【讨论】:

  • 是的,我试过这个,当我点击这个 api 时会得到这个错误。{"error":{"code":"AuthenticationFailed","message":"Authentication failed. The 'Authorization'标头丢失。"}}
  • @jubi 你需要在你的请求中传递 Bearer 令牌
  • 感谢您的意见。您是否有任何示例向我解释如何创建令牌并将其添加到 http 调用中
  • 我会将这个添加到类库解决方案中并检查和更新。
  • 这里的请求是什么?(request.ClientId, request.ClientSecret)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多