主题中讨论的其他器件: CC3100
我正在将使用用户令牌获取和发布的 CC3100设计迁移到使用 MSP432的 CC3120设计。 令牌通过 CC3100等 https 服务器事件在 CC3120上工作。 通过帖子保持活动正在为我预期作为 httpserver 事件出现的帖子创建一个 NetAppRequest 事件。 我现在是否必须让 MSP432处理此 HTTP 请求?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我正在将使用用户令牌获取和发布的 CC3100设计迁移到使用 MSP432的 CC3120设计。 令牌通过 CC3100等 https 服务器事件在 CC3120上工作。 通过帖子保持活动正在为我预期作为 httpserver 事件出现的帖子创建一个 NetAppRequest 事件。 我现在是否必须让 MSP432处理此 HTTP 请求?
您好、Gary、
之前由网络处理器处理而不唤醒主机的所有令牌(如器件和网络信息)在 CC3120上仍然有效。 CC3x20 NWP 编程人员指南在"HTTP 服务器"一章中提供了受支持令牌的完整列表、包括有关我的以下帖子的详细信息: http://www.ti.com/lit/swru455
HTTP 服务器主机请求(需要由应用处理的请求)在第1代和第2代之间从令牌更改为 RESTful API。 您可以在便携式+ Wi-Fi SimpleLink Academy 中看到此新功能、其中讨论了基本的内部 HTTP 服务器: dev.ti.com/.../
您还可以使用保留在主机驱动程序中的传统 API 进行移植、即 SimpleLinkHttpServerEventHandler。 如果您将第1代 HTTP 服务器回调的内容移至 CC3120应用代码中的 SimpleLinkHttpServerEventHandler、它应该会为您提供类似的功能。
此致、
Sarah
您好、Gary、
您是否准备过账元数据、然后发回一个 NetAppRequest (sl_NetAppSend)? 在我的第一篇文章中链接到的 SimpleLink Academy 中,我在 httpPostHandle()中执行此操作。 SimpleLinkNetAppRequestEventHandler 没有像 SimpleLinkHttpServerEventHandler 那样将 SlNetAppHttpServerResponse_t 内置到该处理程序中。
此致、
Sarah
您好、Sarah、
我确实继续使用 SlNetAppHttpServerResponse 来响应该帖子。 我花了一点时间才知道如何添加到服务器头文件中、但在我完成后、我们的应用程序通过 SimpleLinkHttpServerEventHandler 完成了所有获取、并通过 SlNetAppHttpServerResponse 完成了所有发布、没有任何问题。 我还在通过 SlNetAppHttpServerResponse 实施 POST 解析。 我不确定为什么我无法通过 SimpleLinkHttpServerEventHandler 可靠地获取 POST 令牌、获取令牌正常工作。 在我看来,我似乎缺少一些东西。 对于 CC3100、我们有7个包含嵌入式 Get 令牌的网页、这些网页对应于我们编程到 CC3100闪存中的7个应用页面。 (我在 PC 上使用 Fiddler 来诊断我的 POST 响应问题。 在这个过程中、我注意到、如果我重复发送3个以上的 Get 请求、某些请求需要一秒钟以上的时间才能得到回复。 我可以尝试使用 SlNetAppHttpServerResponse 来查看是否更快)。
Gary
您好、Sarah、
我已经使用 SimpleLinkNetAppRequestEventHandler 完全实现了旧版 CC3100令牌,而 SimpleLinkHttpServerEventHandler 又调用了 SimpleLinkHttpServerEventHandler。 我喜欢这种解决方案、因为它消除了在 CC3120闪存上使用特殊令牌文件的需求、并重新使用了我们的 SimpleLinkHttpServerEventHandler 代码。 (之前提到的500内部服务器错误是我的、我错误地将响应缓冲区放置在函数内、因此它不会持久)。
对于 Get、我在请求数据中搜索 TLV 以查找 SL_NetApp_Request_metadata_type_HTTP_QUEST_string (即令牌)并检查令牌长度。 我使用 SimpleLinkHttpServerEventHandler 的事件和响应数据结构传递令牌并返回数据。 我们使用由 SimpleLinkHttpServerEventHandler 处理的多个令牌。 返回 Get 响应后、我会将其打包成 html、因为这正是我们的应用所期望的。 响应将分配给有效负载、并在元数据中添加内容类型标题。 (由于内容位于 html 内、因此不需要内容长度)。 自动生成服务器标头。
对于 POST、令牌位于有效负载的起始位置、因此我在 SimpleLinkHttpServerEventHandler 的 HttpPostData 结构中为令牌名称和令牌值(POST 数据位于令牌之后)分配令牌名称和令牌值。 响应为204_OK_NO_content。 (我最初遇到了问题,因为 Beacuse POST 标记不会发送到 SimpleLinkHttpServerEventHandler)。
对于 Get 和 POST、将立即返回响应。 在这种有限的情况下、这比添加 httpserver.c 容易得多
我确实找到了一个看起来是错误的东西。 起初、该帖子没有元数据、只有 SL_NetApp_HTTP_RESPONSE_204_OK_NO_content 响应、并且没有像 Get 中一样发送服务器标头。 当我添加服务器标头时、我得到了其中的2个。 我猜测元数据中可能需要有一些东西才能获取服务器标头、因此我在元数据中放置一个空格字符、然后自动发送服务器标头。
我们可以关闭此主题、感谢您的支持。
Gary