coreHTTP 交互身分驗證示範 - FreeRTOS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

coreHTTP 交互身分驗證示範

重要

這是 FreeRTOS 使用者指南的封存版本,可與 FreeRTOS 版本 202210.00 搭配使用。如需本文件的最新版本,請參閱 FreeRTOS 使用者指南

簡介

coreHTTP (相互身分驗證) 示範專案說明如何使用 TLS 與用戶端和伺服器之間的相互身分驗證建立 HTTP 伺服器的連線。此示範使用 mbedTLS 型傳輸介面實作來建立伺服器和用戶端驗證的 TLS 連線,並在 HTTP 中示範請求回應工作流程。

注意

若要設定和執行 FreeRTOS 示範,請遵循中的步驟FreeRTOS 入門

功能

此示範會建立單一應用程式任務,其中包含示範如何完成下列項目的範例:

  • 連線至 AWS IoT 端點上的 HTTP 伺服器。

  • 傳送 POST 請求。

  • 接收回應。

  • 中斷與伺服器的連線。

完成這些步驟後,示範會產生類似下列螢幕擷取畫面的輸出。

Console output showing SDK initialization, network setup, and successful demo completion.

AWS IoT 主控台會產生類似下列螢幕擷取畫面的輸出。

AWS IoT console interface showing a publish message field and output display area.

原始碼組織

示範來源檔案名為 http_demo_mutual_auth.c,可在 freertos/demos/coreHTTP/目錄和 GitHub 網站上找到。

連線至 AWS IoT HTTP 伺服器

connectToServerWithBackoffRetries 函數會嘗試對 AWS IoT HTTP 伺服器進行相互驗證的 TLS 連線。如果連線失敗,則會在逾時後重試。逾時值會呈指數增加,直到達到最大嘗試次數或達到最大逾時值為止。RetryUtils_BackoffAndSleep 函數提供指數增加的逾時值,並在達到嘗試次數上限RetryUtilsRetriesExhausted時傳回 。如果無法在設定的嘗試次數之後建立與代理程式的 TLS 連線,connectToServerWithBackoffRetries則函數會傳回失敗狀態。

傳送 HTTP 請求並接收回應

prvSendHttpRequest 函數示範如何將 POST 請求傳送至 AWS IoT HTTP 伺服器。如需在 中向 REST API 提出請求的詳細資訊 AWS IoT,請參閱裝置通訊協定 - HTTPS。系統會使用相同的 coreHTTP API 呼叫 接收回應HTTPClient_Send