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.

[参考译文] CC3220MODA:无法从重定向 URL 获取数据

Guru**** 2513185 points
Other Parts Discussed in Thread: CC3220MODA, MSP430FR6879

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/804009/cc3220moda-fail-to-get-data-from-redirected-url

器件型号:CC3220MODA
主题中讨论的其他器件:MSP430FR6879

你(们)好

我们必须紧急解决以下问题。
那么、您能给我们反馈吗?

使用了 SimpleLink CC3220 SDK 2.30.00.05版。

我们希望从重定向 URL 下载数据。

我们使用在 httpclient.c 中声明的以下函数、但失败了。

RET = HttpClient_sendRequest (https://ClientHandle、
T_Method、//HTTP_METHOD_Get、
T_URL、//Request_URL、
T_BodyMsg_s、//gsCmdRcvBuffer、
strlen (t_BodyMsg_s)、//strlen (gsCmdRcvBuffer)、
0);

HTTP 状态代码301已钝。
连接到重定向 URL 时会出现以下错误。

SL_RET_CODE_INVALID_INPUT (-2006)
HttpClient_ENOTABSOLUTEURI (-3021)

它与以下 E2E 主题相关。

e2e.ti.com/.../799238

实际上,重定向 URL 的长度是1019个字符。

因此、我们按如下方式扩展了缓冲器长度。

httpclient.h
//#define HttpClient_domain_BUFLEN (100)
#define HttpClient_domain_BUFLEN (2084)

我们的目标是正确地从重定向 URL 下载数据。

您能否向我们提供您的反馈以解决此问题?

贝斯特雷加兹

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

    您尝试重定向到的主机是否与原始 URI 中的主机不同?
    在这种情况下、客户端将首先从原始主机断开连接、并尝试连接到新主机。
    您能否分辨哪个 Simplelink API 会触发 sl_RET_CODE_INVALID_input 错误?

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

    你(们)好,Kobi

    感谢你的答复。

    >您尝试重定向到的主机与原始 URI 中的主机是否不同?
    已重定向的 URI 与原始主机不同。

    >在这种情况下,客户端将首先断开与原始主机的连接,并尝试连接到新主机。
    您是否意味着 HttpClient_disconnect()在重定向操作期间应该起作用?
    是否可以使用 TI 示例检查重定向操作(断开连接并尝试连接到新操作)?
    如果是、您可以建议使用哪种示例代码?

    >您能否判断哪个 Simplelink API 会触发 sl_RET_CODE_INVALID_INPUT 错误?
    目前正在调查中。 我们将在确认后立即更新。

    贝斯特雷加兹

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    disconnect()由 HTTP 客户端库在内部触发。
    用户无需执行任何操作。

    HTTP 客户端代码("httpclient.c")可在" \source\ti\net\http"。
    如果要调试此代码、可以将文件添加到项目中、并将"http"文件夹添加到项目包含路径中。
    有一个 redirect()函数,用于处理重定向。 它可能是开始调试的最佳位置。

    找到 sl_RET_CODE_INVALID_input 的源将有助于我们了解根本原因。

    测试这种情况最简单的示例是"http_get"。 但是、由于处理是由 httpclient 完成的、因此可能会导致相同的结果。
    我尝试调试此操作(只要找到一台使用此类重定向到另一台主机的服务器)。

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

    感谢您的合作。

    我们将使用具有定制功能的 HttpGet 样本。

    对于附加信息、我们将获得以下状态。

    httpTask:无法获取状态-3003

    对于第一个问题、将获得以下日志。

    httpTask:发送失败-2006
    httpTask:发送失败-3021

    作为请求、使用了 basiccally https。 可以帮帮我吗?

    // https 启用
    HttpClient_extSecParams httpClientSecParams;
    httpClientSecParams.privateKey =空;
    httpClientSecParams.clientCert =空;
    https://ClientSecParams.RootCA ="xx_xx_Root.der";

    如果您从未尝试过重定向到另一台主机、我很感谢您的尝试。

    贝斯特雷加兹
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从服务器(-3003)解析响应并获取状态似乎失败、因此可能重定向甚至未启动。
    我们需要更好地了解服务器配置。
    您在哪里看到 HTTP 301响应? 您是否有气吹式机日志?
    是否可以发送完整日志?
    此外、如果您按照之前的说明将 httpclient.c 添加到应用程序中、则可以添加调试消息并找到导致此故障的第一个错误。
    错误-2006可从各种 simplelink 命令返回、因此我们需要准确了解导致此错误的原因。

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

    器件型号:CC3220MODA

    你(们)好


    客户遇到通过 OTA 下载 MSP430FR6879固件失败的问题。
    SDK 版本为2.30.0.05。

    HttpClient_ERESPONSEINVALID (-3003)在调用 HttpClient_sendRequest()下载固件(.bin 文件)时发生。
    我们已确定 httpclient.c 中的 getStatus (HttpClient_CB *CLI)将由此错误引起。

    我们只是有错误日志,并且无法确认 getStatus ()的返回值,因为现在没有复制环境。

    发生错误时执行的命令是 get 命令(文件下载)。
    未使用任何 HTTP 标头和代理。

    尝试从 Amazon S3和 AWSAccessKeyId、Signature、x-AMZ-security-token 下载、
    X-AMZ-security-token 附加在 URL 中。

    我附上日志、请查看。

    e2e.ti.com/.../WiFiLog_5F00_UpdateFailed.zip

    如果使用 PC 浏览器、则可以通过此日志中的链接完成下载、但无法从 CC3220下载。

    当 CC3220连接到具有抖动模式的 iPhoneSE (移动运营商为"au")时、会发生此问题。
    如果移动运营商是"docomo"、则永远不会出现此问题。

    请告诉我一种正确完成下载的方法吗?

    很抱歉给您带来不便、但我们迫切需要您的帮助。

    贝斯特雷加兹

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

    器件型号:CC3220MODA

    你(们)好

    此主题与以下内容相关。
    e2e.ti.com/.../806220
    我将问题拼接起来、以便于理解。


    客户遇到通过 OTA 下载 MSP430FR6879固件失败的问题。
    SDK 版本为2.30.0.05。

    OTA BundleCmdFile_Parse 过程中发生以下错误。

    [_BundleCmdSignatureFile_parse]签名验证失败!

    我附加了日志文件、一个是成功、另一个是失败。

    e2e.ti.com/.../BundleCmdFile_5F00_Parse.zip

    我们在失败的情况下遇到以下错误。
    [_BundleCmdSignatureFile_parse]签名验证失败!
    OtaArchive_RunParseTar:_BundleCmdSignatureFile_Parse 中出现错误、Status=-12291

    当 CC3220连接到具有抖动模式的 iPhoneSE (移动运营商为"au")时、会发生此问题。
    如果移动运营商是"docomo"、则永远不会出现此问题。

    您有解决方案吗?
    请告诉我一种正确完成下载的方法吗?

    贝斯特雷加兹

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

    我已将您有关此主题的其他帖子合并到本主题中。

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

    您好、Kobi、

    当我们通过电子邮件进行通信时、这两个新的 OTA 相关问题现已解决。
    因此、此主题中的唯一剩余问题是原始重定向 URL 问题。

    谢谢、此致、
    田志郎一郎

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

    器件型号:CC3220MODA

    你(们)好 Kobi

    客户有与以下主题相关的附加问题。

    e2e.ti.com/.../804009

    关于下面的两个错误、Tashiro-san 会通知您这些错误已解决。

    #1 HttpClient_ERESPONSEINVALID (-3003)
    #2 [_BundleCmdSignatureFile_parse]签名验证失败!
    OtaArchive_RunParseTar:_BundleCmdSignatureFile_Parse 中出现错误、Status=-12291

    因此,这些错误不会通过在主机名中添加"https://"作为 HttpClient_connect 的参数()而发生。

    因此、客户需要确认以下内容。

    主机名不包括"https://"?时、是否可能出现#1和#2
    如果是、我们添加"https://"的方式是"测量"的正确方式?

    给我带来的不便、我深表歉意、但客户需要确认。

    作为补充、客户使用的服务器是 AWS S3。

    贝斯特雷加兹

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

    请直接回复您的相关主题。 我已将您的帖子合并到这里进行跟进。

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

    很抱歉让你感到困惑。

    我们希望您考虑、我的原始问题标题"CC3220 Moda:无法从重定向 URL 获取数据"与我的新问题以下内容不同。 因为新问题与重定向无关。

    我想问您、在本主题中、只能用有关重定向的原始问题进行讨论。

    我再次摘录新问题。
    --
    #1 HttpClient_ERESPONSEINVALID (-3003)
    #2 [_BundleCmdSignatureFile_parse]签名验证失败!
    OtaArchive_RunParseTar:_BundleCmdSignatureFile_Parse 中出现错误、Status=-12291

    实际上,这些错误不是通过在主机名中添加"https://"作为 HttpClient_connect ()的参数来发生的。

    因此、客户需要确认以下内容。

    主机名不包括"https://"?时、是否可能出现#1和#2
    如果是、我们添加"https://"的方式是"测量"的正确方式?

    给我带来的不便、我深表歉意、但客户需要确认。

    作为补充、客户使用的服务器是 AWS S3。
    --

    如果可能、您能否再次回答这个新问题?

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

    HttpClient_ERESPONSEINVALID (-3003)是指 HTTP 版本。 我们仅支持 HTTP 1.0或1.1。

    看起来像服务器用户 其他版本(2.0?) 当前客户端库不支持的功能。

    当您收到此错误时、将不会处理 HTTP GET -但错误#2是指接收到的数据包(OTA TAR 文件)的身份验证错误。 因此、这些误差不应同时发生。  是否可以发送完整日志?

    有关第二个错误-请参阅以下可能的解决方案。

    https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/685066

     

    客户是否能够使用不需要重新定向的服务器执行 OTA (相同的 tar 包)?

     

    BR、

    Kobi

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

    你(们)好

    感谢你的答复。

    如果 URL 中包含"https://"、则不会出现此错误。
    在这种情况下、这意味着它可以正确通过以进行后续验证。

    /*验证 HTTP 版本为1.1或1.0 */

      if (strncmp (cli->validBufStart、HTTPStr_Ver1_1、vLen)&& strncmp (cli->validBufStart、HTTPStr_Ver1_0、vLen))

      {

        /*不是有效的 HTTP 版本*/

        返回(HttpClient_ERESPONSEINVALID);

      }

    因此、我们判断服务器是有效的 http 版本。

    >客户是否能够使用不需要重新定向的服务器执行 OTA (相同的 tar 焊球)?

    我们已经开始调查、但没有重新定向功能。  

    因此、错误与不需要重新定向的服务器有关。

    我随附完整日志以供您调查。 (它使用不需要重新定向的服务器。)

    e2e.ti.com/.../3755.WiFiLog_5F00_UpdateFailed.zip

    如果我需要打开另一个话题继续讨论、请告诉我、我将打开新话题。

    贝斯特雷加兹

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

    您好!

    (-3003)故障似乎与 OTA (连接到不同主机)无关。 我不会低估失败的原因、因为您似乎可以稍后访问同一台服务器。 您是否意味着第一次访问(失败)使用 HTTP、下一次访问使用 HTTPS?

    OTA 正在使用 Amazonaws.com、连接和 HTTP 会话似乎正常工作。

    如果签名验证失败。

    由于您未使用 GitHub 或下拉框、我假设您已更改 OTA 库。 您是否还更改了"ota_archive.c"中的任何内容?

    您是否按照创建 OTA 密钥对和使用私钥对映像进行签名的确切说明进行了操作?

    您是否在文件系统上安装了 OTA 证书?

    您能否使用"dummy_ota_vender_cert"示例尝试相同的序列(即使用"dummy_ota_vendor_key.der"对 OTA 映像签名、并使用"dummy_ota_vendor_cert.der")?"验证签名) 这是否起作用?

    BR、

    Kobi

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

    你(们)好 Kobi

    感谢你的答复。

    我对此问题有一些需要确认的事情。  

    我可以有一点时间吗?

    给您带来的不便、我深表歉意。  

    贝斯特雷加兹