coreHTTP 双向身份验证演示 - FreeRTOS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

coreHTTP 双向身份验证演示

重要

这是《FreeRTOS 用户指南》的存档版本,可用于 FreeRTOS 版本 202210.00。有关本文档的最新版本,请参阅《FreeRTOS 用户指南》

简介

coreMQTT(双向身份验证)演示项目展示了如何使用在客户端与服务器之间具有双向身份验证的 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 请求和接收响应

prvSendHttp请求函数演示如何向 AWS IoT HTTP 服务器发送 POST 请求。有关向 REST API 发出请求的更多信息 AWS IoT,请参阅设备通信协议-HTTPS。响应是通过相同的 CoreHTTP API 调用 HTTPClient_Send 接收。