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.

[参考译文] RTOS/CC3220SF-LAUNCHXL:HttpGet 示例

Guru**** 2589245 points
Other Parts Discussed in Thread: CC3200SDK, CC3200

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/823974/rtos-cc3220sf-launchxl-httpget-example

器件型号:CC3220SF-LAUNCHXL
Thread 中讨论的其他器件:CC3200SDKCC3200

工具/软件:TI-RTOS

您好!

我尝试运行 HttpGet 示例项目。 根据本地 Wi-Fi 路由器、我首先更改了 SSID_NAME、SECURITY_KEY 和 SECURITY_TYPE。

之后、我遇到了两个问题:

1)永远不会调用 SimpleLinkNetAppEventHandler()函数。 为了解决此问题,我在 mainThread()、platphorm.c 文件中输入了 sl_RegisterEventHandler (sl_event_HDL_NetApp、SimpleLinkNetAppEventHandler)的调用。

2) HttpClient_connect()的调用返回错误代码-2006。 这意味着 sl_RET_CODE_INVALID_INPUT (即参数无效)。 什么是"无效"? 请建议如何创建功能 HttpGet 示例。

谢谢!

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

    您好!

    刚刚在 SDK v3.20上运行了示例、对我来说效果不错。 您如何设置路由器设置? 如果可能、请提供片段。 您不必手动调用 net app 事件处理程序。  

    Jesu

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

    您好、Jesu、感谢您的回复!

    已经按照建议更新了 SDK 版本、导入了'HttpGet'项目、编译并"按原样"运行。

    您写道:

    您不必手动调用 net app 事件处理程序。

    已选中! 事件处理程序具有带捕捉的 WiFi 事件、无需手动调用。 但它在哪里被惊醒了?

    终端 CCS 窗口仍然显示:

    [NetApp 事件]收购的 IP:IP=10.108.5.208,Gateway=10.108.5.1

    发送 HTTP GET 请求至'http://www.example.com'

    错误! 代码=-2006、说明= httpTask:连接失败

    如何调查此类行为? 遗憾的是、我看不到我们的 Wi-Fi 路由器的设置。

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

    您好!

    在网络处理器通知主机事件后、主机驱动程序会调用事件处理程序。  

    自从您更新 SDK 后、请确保您更新到 SDK 中的最新服务包。  

    您使用的路由器是否具有良好的互联网连接? 或者、您可能还可以尝试另一台可访问互联网的路由器? 如果您按原样运行示例、我不理解为什么仍然会出现无效输入错误。

    Jesu

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

    你好、Jesu!

    您写道:

    自从您更新 SDK 后、请确保您更新到 SDK 中的最新服务包。  

    我找到 了 http://www.ti.com/tool/CC3200SDK ,其中提到了“CC3200软件开发套件(SDK)、Service Pack 和 Add-Ons/CC3200SDK_1.4.0”。 很遗憾、我找不到适用于我的 iMac PC 的 Service Pack 版本。 您可以在此问题上指向我的帮助链接吗?

    在我的'HttpGet '示例测试继续中、我在手机上启用了 WiFi AP 并更新了示例应用中的 AP 设置。 结果未更改:  

    在 Wi-Fi 基站模式下启动 SimpleLink 器件
    连接到"msol12"
    [NetApp 事件]获取的 IP:IP=192.168.43.169,Gateway=192.168.43.1
    发送 HTTP GET 请求至"http://www.example.com"
    创建 http 客户端..
    设置 http 标头。
    HTTP 连接..
    (!) 错误:代码=-2006、说明= httpTask:连接失败

    2006错误代码表示"参数无效"。

    #define HOSTNAME        " http://www.example.com"

    #define REQUEST_URI      "/"

    #define USER_AGENT       "HttpClient (ARM;TI-RTOS)"

    #define HTTP_MIN_RECV     (256)

    void* httpTask (void* pvParameters)

      bool MoreDataFlag = false;

      char data[HTTP_MIN_RECV];

      int16_t ret = 0;

      int16_t len = 0;

      print_debug ("向\"%s\"发送 HTTP GET 请求、HOSTNAME");

      HttpClient_handle httpClientHandle;

      int16_t statusCode;

      print_debug ("创建 http 客户端...");

      httpClientHandle = HttpClient_create (&statusCode、0);

      if (statusCode < 0){

        printError ("httpTask:创建 http 客户端句柄失败"、statusCode);

      }

      print_debug ("设置 http 标头...");

      RET = HttpClient_setHeader (httpClientHandle、

                    HttpClient_HFIELD_REQ_USER_AGENT、

                    USER_AGENT、strlen (USER_AGENT)+1、

                    HttpClient_HFIELD_PERSISTENT);

      if (ret < 0){

        printError ("httpTask:Setting Request header.1 failed"、ret);

      }

      print_debug ("HTTP connect...");

      RET = HttpClient_connect (https://ClientHandle、HOSTNAME、0、0);

      if (ret < 0){

        printError ("httpTask: connect failed"、ret);

      }

      …………

    我尝试测试另外两种情况:

    RET = HttpClient_connect (httpClientHandle、HOSTNAME、0、HttpClient_ignore_proxy);

    const char * host ="www.example.com";

    RET = HttpClient_setHeader (httpClientHandle、

                      HttpClient_HFIELD_REQ_host

                      主机、strlen (host)+ 1、

                      HttpClient_HFIELD_PERSISTENT);

    RET =  HttpClient_connect (httpClientHandle、HOSTNAME、0、HttpClient_host_exists);

    没有成功。

    //我已经检查了移动 AP 和办公室 AP,这两个 AP 都可以与基于 ESP8266的其他嵌入式设备正常工作。

    希望得到您的支持。

    谢谢!

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

    您使用的是 CC3200还是 CC3220? 我认为您使用的是 CC3220、但您提到的 SDK 是用于 CC3200的。 请注意、CC3220与3200有很大不同。 如果您使用的是 CC3220、则肯定会使用3220 SDK。

    Jesu

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

    您好!

    由于不活动、我将关闭此线程。 如果您有相同的问题、请在此处回答。 如果您有新问题、请创建新主题。

    Jesu