微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Telit ME910C1调制解调器与Azure设备配置服务进行通信

如何解决使用Telit ME910C1调制解调器与Azure设备配置服务进行通信

我正在尝试使用Telit ME910C1-AU调制解调器连接到Azure DPS。我最初使用HTTP命令(即HTTPSNDHTTPRCV)将数据发送到postman-echo.com并获得了一些成功。但是,当发送到Azure时,我需要添加对称密钥。不幸的是,HTTPSND命令仅允许将内容添加到最大长度为100(无法调整)的标题中,并且密钥超过100个字符,这意味着我无法使用HTTP命令来执行此操作这个。

Telit建议我自己使用SSL命令(SSLDSSLEN等)打开套接字。同样,将数据发送到postman-echo.com还是成功的,但是将数据发送到Azure将返回(看似)格式错误的标头。这些是我发送/接收的命令/响应(为了使内容更清楚,缩进了响应):

at#sgact=1,1
    #SGACT: 10.37.xxx.xxx
    OK
at#sslen=1,1
    OK
at#ssld=1,443,"global.azure-devices-provisioning.net",0
    CONNECT
PUT /<redacted1>/registrations/test-something/register?api-version=2018-11-01 HTTP/1.1\r\nauthorization: SharedAccessSignature sr=<redacted2>\r\nContent-Type: application/json\r\nHost: global.azure-devices-provisioning.net\r\nContent-Length: 35\r\n\r\n{"registrationId":"test-something"}\r\n\r\n
    HTTP/1.1 202 Accepted
    Date: Wed,07 Oct 2020 23:17:53 GMT
    Content-Type: application/json; charset=utf-8
    transfer-encoding: chunked
    Location: https://global.azure-devices-provisioning.net/<redacted1>/registrations/test-something/register
    x-ms-request-id: <redacted3>
    Strict-Transport-Security: max-age=31536000; includeSubDomains
    st
    Connection: close
    Date: Wed,07 Oct 2020 23:17:53 GMT
    Content-Length: 0


    NO CARRIER  

如果我使用Postman,则会收到以下答复。

HTTP/1.1 202 Accepted
Date: Wed,07 Oct 2020 23:09:20 GMT
Content-Type: application/json; charset=utf-8
transfer-encoding: chunked
Location: https://global.azure-devices-provisioning.net/<redacted1>/registrations/test-something/register
x-ms-request-id: <redacted3>
Strict-Transport-Security: max-age=31536000; includeSubDomains
{"operationId":"<redacted5>","status":"assigning"}

这正是我要查看的内容,因为它返回了DPS所需的操作ID。

邮递员和调制解调器发送的标头完全相同,因此我看不到它们返回不同内容的任何原因。它们也都关闭了SSL证书验证。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?