MQTT连接阿里云IoT(四)
生活随笔
收集整理的這篇文章主要介紹了
MQTT连接阿里云IoT(四)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述
前一篇文章我們介紹了設備密鑰的認證方式,那么這里重點來看如何通過Qt的HTTP接口來實現一型一密動態注冊的流程。
一型一密動態注冊
【官網介紹】
直連設備使用一型一密動態注冊的流程:
- 在物聯網平臺預注冊設備,并獲取產品證書(ProductKey和ProductSecret)。預注冊設備時,可以使用設備的MAC地址或SN序列號等作為DeviceName。
- 在控制臺開啟設備所屬產品的動態注冊開關。
- 將產品證書燒錄至固件。
- 設備向云端發起身份認證。云端認證成功后,下發DeviceSecret。
- 設備使用設備證書與云端建立連接。
直連設備動態注冊,通過HTTP發送請求。 需先在控制臺上,開通該產品的一型一密動態注冊功能,如下,這個開關要打開:
URL模板: https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device
HTTP方法: POST
請求數據格式:
POST /auth/register/device HTTP/1.1 Host: iot-auth.cn-shanghai.aliyuncs.com Content-Type: application/x-www-form-urlencoded Content-Length: 123 productKey=1234556554&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5響應數據格式:
{"code": 200,"data": {"productKey": "1234556554","deviceName": "deviceName1234","deviceSecret": "adsfweafdsf"},"message": "success" }參數說明:
根據官網的接口說明,我們使用Qt接口來請求。
Qt Http post請求動態注冊設備
QString productKey = "xxxxx";QString productSecret = "xxxxx";QString deviceName = "xxxxx";QString message = "deviceNameXXXXXXproductKeyXXXXXXXrandom123222";QUrlQuery params;QString sign = QMessageAuthenticationCode::hash(message.toLocal8Bit(),productSecret.toLocal8Bit(),QCryptographicHash::Sha1).toHex();params.addQueryItem("productKey",productKey);params.addQueryItem("deviceName",deviceName);params.addQueryItem("random","123222");params.addQueryItem("sign",sign);params.addQueryItem("signMethod","HmacSHA1");QNetworkRequest request;QString data = params.toString();request.setUrl(QString("https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device"));request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded;");request.setHeader(QNetworkRequest::ContentLengthHeader, data.size());m_pNetWorkManager->post(request,data.toUtf8() );注意,雖然是動態注冊設備,但前提要現在阿里云IOT上創建好設備。上面代碼中的xxxx換成自己的響應信息。
在正式項目中,也可以選擇批量添加設備。
請求完成就會收到服務器下發的數據啦:
"{\"code\":200,\"data\":{\"deviceName\":\"xxxxxxxxx\",\"deviceSecret\":\"xxxxxxxxxxxx\",\"productKey\":\"xxxxxxxx\"},\"message\":\"success\"}"ok,這時候就請求到設備的deviceSecret了,接下來就可以通過這些信息去正式連接服務器。關于連接的部分已經在前面的文章中介紹過了,詳情看這里。
總結
以上是生活随笔為你收集整理的MQTT连接阿里云IoT(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对求助者说声抱歉~
- 下一篇: C/C++基础知识点(一)