我们有连接到云的旧式仪表,可以将其配置为将读数发送到任何http端点。我还可以配置它以添加诸如“ Authorization = SharedAccessSignature sr = ...”之类的标题。
但是,当标头值包含等号(“ =”)时,它将失败。
所以问题是,使用sas令牌是否还有其他选择(我不能使用证书)?
我在IoT Central应用程序中通过.net使用Rest Api。您可以检查here完整代码。我正在正确获取数据。
HttpClient对象
request.Headers.Add("Authorization", getAuth(authScope, reason) + authTarget);
string getAuth(string scope, string target)
{
long utcTimeInMilliseconds = DateTime.UtcNow.Ticks / 10000;
long expires = ((utcTimeInMilliseconds + (7200 * 1000)) / 1000);
string sr = scope + "%2f" + target + "%2f" + deviceId;
string sigNoEncode = computeHash(deviceKey, sr + '\n' + expires.ToString());
string sigEncoded = Uri.EscapeDataString(sigNoEncode);
return "SharedAccessSignature sr=" + sr + "&sig=" + sigEncoded + "&se=" + expires.ToString();
}
希望它会有所帮助。