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.

[参考译文] CC3220SF:Dropbox OTA、错误400

Guru**** 2482105 points
Other Parts Discussed in Thread: CC3220SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1327657/cc3220sf-dropbox-ota-error-400

器件型号:CC3220SF

大家好、我正在使用 Dropbox 作为 OTA。 它的工作时间很长、一直到几周前。 现在连接已建立、文件夹列表已下载、但在尝试下载 捆绑包时收到错误400。 Dropbox 支持团队回答了类似的问题(约错误400 ),声称 HTTPT 申请的格式可能不是100%正确。

欢迎对这一问题的任何支持。 谢谢。

以下是 Dropbox HTTP 响应:





Dropbox - 400
"="">">cfl.dropboxstatic.com/.../error.css" rel="stylesheet" type="text/CSS"/>
"="">"> cfl.dropboxstatic.com/.../>



"="">">assets.dropbox.com/.../target-miss.svg" alt="错误:400"/>


误差(400)

出现问题。 别担心,您的文件仍然是安全的, Dropbox 团队已收到通知。 请查看我们的 "="">">status.dropbox.com">Status 页面 ,了解是否有已知事件,我们的 "="">">www.dropbox.com/help">Help 中心" 和 "="">">forums.dropbox.com">forums 寻求帮助,或返回 "="">">www.dropbox.com/.../a>。



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

    此查询已分配给我们的 软件专家。 请等到周一等待他们的 RESPOONSE。

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

    尊敬的 Shimon:

    我们不熟悉 Dropbox 中的任何更新、但 400意味着错误的请求 、因此这看起来可能与他们在 API 中所做的更改相关。

    请与他们联系-应该有一种方法可以从他们的服务器获取相应的日志。

    BTW。 您正在使用哪种 OTA 解决方案? 是 SDK 6.10中的版本(即使用 OTA_IF)还是较旧版本(直接使用 OTA.lib)中的版本?

    Br、

    小比  

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

    尊敬的 Kobi:

    我正在使用 OTA_IF。 以下是我从 Dropbox 员工那里得到的回复:

    "Dropbox 不提供这样的检索请求/错误日志的方法,但我会将其作为功能请求传递。 我不能保证是否或何时可以实施。

     像这样的400错误表明请求格式化的问题、在这种情况下、我们建议使用客户端日志记录来检查客户端发出的请求。 您可能需要参考您正在使用的网络客户端的文档、并查看是否可以启用某些客户端日志记录、并在您重现错误时使用它来检查请求。"

    是否有在 CC3220SF 端捕获整个 HTTP 请求的简单方法?

    谢谢。

    希蒙

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

    当二进制内容进入 sl_Send()时,可以打印二进制内容,然后需要转换为文本(检查 HTTP 内容)。

    还有 HTTP "转储"服务器(您可以联机检查)、您可以使用它们发送任何 HTTP 请求、它们只会记录这些请求、以便您可以检查内容。 这将要求您进行更改,以便它将连接到 dump-server,并将有问题的数据包发送到该处。

    我会在下周使用我们的示例代码尝试重现设计。

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

    尊敬的 Kobi:

    谢谢。 进入 sl_Send 时、是否已加密? 而且、当使用转储服务器时、我需要模拟整个过程、即首先在询问文件夹列表时正确回复、因为只有这样 CC3220SF 才会发送有问题的 HTTP 请求。 我是对吗?

    我注意到 SDK 具有"捕获 NWP 日志"特性(在引脚62上)。 根据文档、这些都是加密日志、TI 工程师可以将它们解密并用于调试目的。 这些日志对您有用吗?

    谢谢。

    希蒙

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

    sl_Send 仍未加密(NWP 处理加密)。

    借助转储服务器、我的意思是您只发送失败的数据包(为此打开第二个连接)-它将更难模拟之前的响应。

    NWP 日志(仅供说明之用-相关说明可在 程序员指南的第20章中找到) 将 因为他们不查看套接字的数据。 了解连接管理问题或致命 事件(来自 NWP)非常有用。  

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

    谢谢。 在这种情况下,从 sl_Send()中打印内容可能会更简单。 在 sl_Send()(log_info?)中,什么打印功能正常工作?

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

    尝试使用 Report()

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

    尊敬的 Kobi:

    您是否已成功重现此问题?

    将文件 sl_socket.c (包含 sl_Send())移到我的项目中创建了太多不兼容的依赖项,因此 我打印了 SlNetSock_send()发送的内容,而不是打印由 slNetSock_send()发送的内容。   

    以下是捕获的流量:

    'list_folder'请求:
    post /2/files/list_folder HTTP/1.1
    内容类型:application/json
    授权:不记名 SL。 Bwg31qNyvs2KjuANe6wfTrBJu2LBO7mrVltkFc9dSYg9VCVfg4NhKyPbZ4Es5QSy2BMHTlno5OBgiF14RAOtFCHpbyWuJ1T-EY5jxgKIbOhDv1WrqHabwJ4ASUTM
    主机:api.dropboxapi.com
    内容长度:41

    {"path":"/ota_bundle_office"、"limit":1}

    'list_folder'响应:
    {"entrys":[{".tag":"file"、"name":"20240221072512_CC3220SF.tar"、"path_lower":"/ota_bundle_office/20240221072512_cc3220sf.tar"、"path_display":"/ota_office/20AA221072512_office/20AA221042512_cc3220AABid.tar"、"path_membund"、"model"、"path_deva" "client_moded":"2024-02-21T05:31:31Z"、"server_modified":"2024-02-21T05:31:31Z"、"rev":"01611dda3b09665000000026de23b50"、"大小":573440、"is_downloaded":true、 "content_hash":"c31073c7b9ea0a3fa69ff61a6ab8d80e5b51d9fa4ef8ee49384cc5b64071406"}]、"Cursor ":


    有问题的请求:
    POST /2/files/get_temperature_link HTTP/1.1
    内容类型:application/json
    授权:不记名 SL。 Bwg31qNyvs2KjuANe6wfTrBJu2LBO7mrVltkFc9dSYg9VCVfg4NhKyPbZ4Es5QSy2BMHTlno5OBgiF14RAOtFCHpbyWuJ1T-EY5jxgKIbOhDv1WrqHabwJ4ASUTM
    主机:api.dropboxapi.com
    内容长度:58

    {"path":"/ota_bundle_office/20240221072512_CC3220SF.tar"}

    错误400响应:




    Dropbox - 400
    "="">">cfl.dropboxstatic.com/.../error.css" rel="stylesheet" type="text/CSS"/>
    "="">"> cfl.dropboxstatic.com/.../>



    "="">">assets.dropbox.com/.../target-miss.svg" alt="错误:400"/>


    误差(400)

    出现问题。 别担心,您的文件仍然是安全的, Dropbox 团队已收到通知。 请查看我们的 "="">">status.dropbox.com">Status 页面 ,了解是否有已知事件,我们的 "="">">www.dropbox.com/help">Help 中心" 和 "="">">forums.dropbox.com">forums 寻求帮助,或返回 "="">">www.dropbox.com/.../a>。




    这是您在终端中看到的内容吗?

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

    是的、我遇到了相同的 HTTP 错误400。

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

    谢谢。 是否有解决此问题的计划?

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

    答案很简单:不。 Dropbox 只是 我们提供的有关如何使用服务器的示例。 他们在改变事情时不会更新我们、因此我们不能对此类问题负责(OTA_IF 使您能够使用第二个云供应商来防止此类问题发生致命错误)。

    假设我们将在获得有关更新的 SDK 的更多内容时尝试提供修复方法-这种情况可能会在今年下半年发生。

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

    好的。 您是否已经知道不兼容是什么? 您能指导我如何修补它吗? 谢谢  

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

    否。 这是 Dropbox 的问题。

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

    我已经将 与您分享的相同捕获发送到 Dropbox。 他们没有发现不兼容问题。  

    但此捕获是  SlNetSock_send()提交的内容,可能与实际的 HTTP 请求数据包不相同。

    从您的测试中-您是否捕获(或您是否捕获)了实际数据包、以便我与他们共享?  

    谢谢。

    希蒙

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

    否。 我没有尝试对其进行调试。

    最好的方法是像我之前提到的那样将数据包发送到转储服务器(但 sl_Send 应该同样好)。

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

    他们无法解释为什么会出现 HTTP 400错误?

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

    否、他们没有发现格式有任何错误、但他们要求提供实际数据包(例如来自转储服务器)。

    我曾尝试将 sl_Send 复制到我的项目中以从中进行打印、但尽管编译成功、器件仍无法正常工作。 我想它需要更多的调试工作。 无论如何、如果您已经有了一种简单的方法来捕获数据包、那将不胜感激。 谢谢   

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

    我们没有一种简单的方法。

    您可以在 httpclient 行1431 (SlNetSock_send)中设置断点-并  使用内存浏览器检查 CLI->validBufStart ( 如果未发送任何其他内容、则可以在 SlNetSock_send 中设置断点)。 您可以更改 BKPT 属性、使"Skip Count"(跳过计数)为1 (因为问题是第二个请求)。

    我将尝试检查是否能找到与 HTTP 内容有关的任何问题、但下周可能会有时间。