使用Node.js SDK无法设置IoT Hub系统属性 导致消息体被base64编码
解决方法
你当前使用的properties.add是应用属性添加接口,设置的参数只会进入事件的应用属性列表,IoT Hub不会读取该位置的编码和类型配置,因此还是会默认将消息体按二进制数据做base64编码。
Azure IoT Hub Node.js SDK的Message对象提供了专门的系统属性配置字段,你直接对消息实例的以下两个属性赋值即可:
// 删掉原来的properties.add两行,替换为下面的配置 outputMsg.contentType = 'application/json'; outputMsg.contentEncoding = 'utf-8';
配置生效后,IoT Hub会识别到消息体是UTF-8编码的JSON文本,转发到Event Grid时会直接返回明文JSON,不会再做base64编码。你可以在后续收到的事件的系统属性列表中看到对应设置的两个字段。
内容的提问来源于stack exchange,提问作者Qusp
相关产品推荐
相关产品推荐

