2016-12-14 53 views
0

使用此項目here能夠讓esp8266將消息發送到Azure Iot集線器,並且我可以使用PowerBI讀取它們。但是,我希望能夠使用設備瀏覽器Twin將消息發送到設備。從Azure接收雲到設備消息到esp8266

我想,因爲esp使用HTTP POST請求將消息發送到Iot集線器,所以我應該能夠使用HTTP GET請求讀取使用正確端點時發送到設備的消息,概述了here

這是正確的,還是我錯過了什麼?這樣做似乎只會導致錯誤。如果這是正確的方式,那麼適當的GET請求的格式是什麼。

+2

你得到什麼錯誤?您是否使用HTTPS和正確的[請求URI](https://docs.microsoft.com/zh-cn/rest/api/iothub/receive-a-cloud-to-device-message)以及正確的[參數] (https://docs.microsoft.com/en-us/rest/api/iothub/device-messaging-rest-apis#bk_common)?您是否[將授權標頭設置爲適當的SAS令牌](https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-devguide-security#security-tokens)? – peterdn

+0

你的GET請求是什麼樣的? –

+0

這是我正在使用的POST請求。它成功發送數據到物聯網集線器: POST/devices/[Device ID]/messages/events?api-version = 2016-02-03 HTTP/1.1 Host:[Device Group] .azure-devices.net 授權:SharedAccessSignature SR = [共享訪問簽名] 內容類型:應用/原子+ xml的;類型=項;字符集= UTF-8 的Content-Length:177 { 「開發」: 「[設備ID]」 ,「Utc」:「2016-12-13T22:33:04」,「攝氏度」:60.00,「溼度」:30.00,「設定點」:70,「狀態」:0,「地理位置」:「美國西部」, 「WiFi」:0,「Mem」:18728,「Id」:2} 我試過幾個變種,嘗試做出有效的GET請求,但都沒有奏效。 –

回答

0

通過REST API從Azure IoT集線器接收Cloud-to-Device消息,您可以使用GET method

與POST方法不同,您需要在Request URI部分中使用「devicebound」而不是「events」。

關於通用參數和標題,僅需要授權標頭,並且與POST請求中的標籤相同。

GET請求中沒有要求的主體。

所以,你的GET請求應該是這樣的:

GET /devices/[Device ID]/messages/devicebound?api-version=2016-02-03 HTTP/1.1 
Host: [IoTHubName].azure-devices.net 
Authorization: SharedAccessSignature sr=[Shared Access Signature] 
相關問題