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.

[参考译文] CC3220MOD:带有 HTTP Post 的_SlNetAppEventHandler ()的行为

Guru**** 2487425 points
Other Parts Discussed in Thread: CC3200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1215471/cc3220mod-behavior-of-_slnetappeventhandler-with-http-post

器件型号:CC3220MOD
主题中讨论的其他器件:CC3200

您好、WiFi 团队

我有一个采用 CC32x0的定制电路板、用作 Web 服务器的接入点

为了执行某些操作、我通过智能手机发送多个 HTTP POST

使用"旧"CC3200时,POST 会触发_SlNetAppEventHandler ()(文件 NetApp.c)中设置 Opcode =的事件 SL_OPCODE_NETAPP_HTTPPOSTTOKENVALUE ;此事件将调用 SimpleLinkHttpServerEventHandler ()回调、我在其中执行请求的操作

借助 CC3220、只能在 Android 智能手机上执行同样的操作。 如果我使用的是同一个 iOS 应用程序与同一个帖子,在_SlNetAppEventHandler ()中,我发现操作码= SL_OPCODE_NETAPP_REQUEST (0x1878);该事件将调用 SimpleLinkNetAppRequestEventHandler ()回调

同一个 iOS 应用程序-具有相同的 HTTP POST -如何触发2个不同的事件?

我编写了一个执行一个简单的帖子的 javascript 过程,像这样:$.post ("No_content",{"token":param});
使用 iOS 在智能手机上执行此请求时、我总是发现 Opcode = SL_OPCOCODE_NETAPP_HTTPPOSTTOKENVALUE、两者都使用 CC3200和 CC3220;所以这似乎不是与 Apple 的操作系统相关的问题...

一种可能的解决方案是"填充"回调 SimpleLinkNetAppRequestEventHandler (); 关键的区别是 SimpleLinkHttpServerEventHandler ()"自动"生成响应;使用 SimpleLinkNetAppRequestEventHandler (),响应必须手动"构建",我找不到示例

感谢你的帮助

Andrea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定 iOS 应用程序发送的 POST 消息有什么不同。 可以使用嗅探器检查它。

    您可以在 OOB 和 MQTT_Client 示例中查找使用 SimpleLinkNetAppRequestEventHandler 的参考(请参阅 ifmod/httpsrv_if)。

      更多细节请见 www.ti.com/.../swru455的第9章。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现通过 Python 发出的 HTTP POST 请求也会设置 Opcode = sl_opcode_netapp_request。

    我不知道为什么这些帖子会在 CC3220中触发不同的事件,但通过按照建议在 SimpleLinkNetAppRequestEventHandler ()中处理它们,现在 iOS 应用可以正常工作。

    在本例中、设置起来至关重要

    pNetAppResponse->Status = SL_NETAPP_HTTP_RESPONSE_204_OK_NO_CONTENT;

    因为_SlNetAppEventHandler ()总是需要响应。

    感谢您的支持。