我有一个Azure Iot Hub端点,我必须发送一些数据(考虑小字符串)。我想设置将数据发送到该URL的速度,并使用Trickle来实现这一目标。
我想
trickle -d 30 -u 30 wget http://armtest1.azure-devices.net
将完成工作,但它正在显示
失败:拒绝连接
也尝试过这样:
trickle -d 30 -u 30 wget --user=[myusername] --password=[mypassword] --auth-no-challenge http://armtest1.azure-devices.net
但仍然得到同样的错误。
如果你们好好指出我的错误并给我一种方法来实现这一点,那将非常有用。
答案 0 :(得分:0)
Azure IoT Hub通过根据共享访问策略和身份注册表安全凭据验证令牌来授予对端点的访问权限。 Azure IoT Hub支持MQTT,AMQP和HTTPS,这些支持的协议以不同的方式传输令牌.HTTPS通过在Authorization请求头中包含有效令牌来实现身份验证。 如果要使用REST API访问(发送数据)到Azure IoT Hub,则需要指定现有设备。请尝试执行以下命令:
trickle -s -d 30 -u 30 \
wget --header="Authorization:<generated SAS token for device>" \
--header="Content-Type:application/json" \
--post-data '<your data in json style>' \
"https://<your-iothub-host>.azure-devices.net/devices/<device id>/messages/events?api-version=2016-02-03"
在命令中,需要澄清一些事情。
成功执行命令后,会出现如下响应:
Connecting to <your-iothub-host>.azure-devices.net (<your-iothub-host>.azure-devices.net)|<ipaddress>|:443... connected.
HTTP request sent, awaiting response... 204 No Content
2018-01-03 22:33:53 (0.00 B/s) - ‘events?api-version=2016-02-03’ saved [0]
并且,IoT Hub将收到消息,您可以通过设备资源管理器monitor the events。