MQTT连接阿里云IoT(四)
概述
前一篇文章我們介紹了設(shè)備密鑰的認(rèn)證方式,那么這里重點(diǎn)來看如何通過Qt的HTTP接口來實(shí)現(xiàn)一型一密動態(tài)注冊的流程。
一型一密動態(tài)注冊
【官網(wǎng)介紹】
直連設(shè)備使用一型一密動態(tài)注冊的流程:
- 在物聯(lián)網(wǎng)平臺預(yù)注冊設(shè)備,并獲取產(chǎn)品證書(ProductKey和ProductSecret)。預(yù)注冊設(shè)備時,可以使用設(shè)備的MAC地址或SN序列號等作為DeviceName。
- 在控制臺開啟設(shè)備所屬產(chǎn)品的動態(tài)注冊開關(guān)。
- 將產(chǎn)品證書燒錄至固件。
- 設(shè)備向云端發(fā)起身份認(rèn)證。云端認(rèn)證成功后,下發(fā)DeviceSecret。
- 設(shè)備使用設(shè)備證書與云端建立連接。
直連設(shè)備動態(tài)注冊,通過HTTP發(fā)送請求。 需先在控制臺上,開通該產(chǎn)品的一型一密動態(tài)注冊功能,如下,這個開關(guān)要打開:
URL模板: https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device
HTTP方法: POST
請求數(shù)據(jù)格式:
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響應(yīng)數(shù)據(jù)格式:
{"code": 200,"data": {"productKey": "1234556554","deviceName": "deviceName1234","deviceSecret": "adsfweafdsf"},"message": "success" }參數(shù)說明:
根據(jù)官網(wǎng)的接口說明,我們使用Qt接口來請求。
Qt Http post請求動態(tài)注冊設(shè)備
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() );注意,雖然是動態(tài)注冊設(shè)備,但前提要現(xiàn)在阿里云IOT上創(chuàng)建好設(shè)備。上面代碼中的xxxx換成自己的響應(yīng)信息。
在正式項目中,也可以選擇批量添加設(shè)備。
請求完成就會收到服務(wù)器下發(fā)的數(shù)據(jù)啦:
"{\"code\":200,\"data\":{\"deviceName\":\"xxxxxxxxx\",\"deviceSecret\":\"xxxxxxxxxxxx\",\"productKey\":\"xxxxxxxx\"},\"message\":\"success\"}"ok,這時候就請求到設(shè)備的deviceSecret了,接下來就可以通過這些信息去正式連接服務(wù)器。關(guān)于連接的部分已經(jīng)在前面的文章中介紹過了,詳情看這里。
總結(jié)
以上是生活随笔為你收集整理的MQTT连接阿里云IoT(四)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对求助者说声抱歉~
- 下一篇: C/C++基础知识点(一)