# httpclient_demo **Repository Path**: yocop/httpclient_demo ## Basic Information - **Project Name**: httpclient_demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-30 - **Last Updated**: 2025-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概述 httpclient_demo是一个简单的httpclient组件使用示例。httpclient是一个开源的http客户端,支持HTTP和HTTPS的访问。 # 使用 ## CDK 在CDK的首页,通过搜索httpclient_demo,可以找到httpclient_demo,然后创建工程。 CDK的使用可以参考YoCBook [《CDK开发快速上手》](https://www.xrvm.cn/document?temp=use-cdk-to-get-started-quickly&slug=yocbook) 章节 ## 通过命令行 需要先安装[yoctools](https://www.xrvm.cn/document?temp=yoctools&slug=yocbook)。 ### DEMO获取 ```bash mkdir workspace cd workspace yoc init yoc install httpclient_demo ``` ### 切换系统内核 #### 切换到RHINO 默认支持RHINO 无需切换,如果需要从RT-Thread修改到RHINO,则根据下一节内容`切换到RT-Thread`下面的内容修改回去。 #### 切换到RT-Thread ##### D1平台 比如在develop分支上面,需要修改`components/sdk_chip_d1/package.yaml`文件中的`depends`部分: 将`rtthread`这个注释打开,需要注释掉这几个组件 `rhino`,`rhino_arch`,`rhino_pwrmgmt`,`ble_host`,`freertos`最终如下所示: ```yaml depends: ...... #- rhino: develop #- rhino_arch: develop #- rhino_pwrmgmt: develop #- freertos: develop - rtthread: develop ...... #- ble_host: develop ``` ##### bl606P平台 比如在develop分支上面,需要修改`components/sdk_chip_bl606p_e907/package.yaml`文件中的`depends`部分: 将`rtthread`这个注释打开,需要注释掉这几个组件 `rhino`,`rhino_arch`,`rhino_pwrmgmt`,`bl606p_bthost`,`bl606p_blimpls`,`freertos`如下所示 ```yaml depends: ...... #- rhino: develop #- rhino_arch: develop #- rhino_pwrmgmt: develop #- freertos: develop - rtthread: develop ...... #- bl606p_bthost: develop #- bl606p_blimpls: develop ...... ``` ##### ch2601平台 比如在develop分支上面,需要修改`components/sdk_chip_ch2601/package.yaml`文件中的`depends`部分: 将`rtthread`这个注释打开,需要注释掉这几个组件 `rhino`,`rhino_arch`,`rhino_pwrmgmt`,`freertos`如下所示 ```yaml depends: ...... #- rhino: develop #- rhino_arch: develop #- rhino_pwrmgmt: develop #- freertos: develop - rtthread: develop ...... ``` ##### f133平台 比如在develop分支上面,需要修改`components/sdk_chip_f133/package.yaml`文件中的`depends`部分: 将`rtthread`这个注释打开,需要注释掉这几个组件 `rhino`,`rhino_arch`,`rhino_pwrmgmt`,`ble_host`,`freertos`最终如下所示: ```yaml depends: ...... #- rhino: develop #- rhino_arch: develop #- rhino_pwrmgmt: develop #- freertos: develop - rtthread: develop ...... #- ble_host: develop ...... ``` ### 编译&烧录 注意: 烧录时请注意当前目录下的`gdbinitflash`文件中的`target remote localhost:1025`内容需要改成用户实际连接时的 XuanTie Debug Server 中显示的对应的内容。 #### D1平台 1. 编译 ```bash make clean make SDK=sdk_chip_d1 ``` 2. 烧写 ```bash make flashall SDK=sdk_chip_d1 ``` #### bl606P平台 1. 编译 ```bash make clean make SDK=sdk_chip_bl606p_e907 ``` 2. 烧写 ```bash make flashall SDK=sdk_chip_bl606p_e907 ``` #### ch2601平台 1. 编译 ```bash make clean make SDK=sdk_chip_ch2601 ``` 2. 烧写 ```bash make flashall SDK=sdk_chip_ch2601 ``` #### f133平台 1. 编译 ```bash make clean make SDK=sdk_chip_f133 ``` 2. 烧写 ```bash make flashall SDK=sdk_chip_f133 ``` ### 调试 ```bash riscv64-unknown-elf-gdb yoc.elf -x gdbinit ``` #### cv181xh_huashanpi_evb 平台 1. 编译 ```bash make clean make SDK=sdk_chip_cv181xh_bga ``` 2. 烧写 ```bash make flashall SDK=sdk_chip_cv181xh_bga ``` # 运行 重新上电或按下RST键,系统启动,串口会有以下打印信息,表示系统运行成功。 ``` ###YoC###[Aug 16 2022,03:03:24] (cli-uart)# cpu clock is 1008000000Hz [ 0.350][init]find 8 partitions [ 0.360][WIFI]Init WLAN enable [ 0.470][WIFI_IO]__sdio_bus_probe SD:mmc_card_create card:0x4024f680 id:1 [ERR] SDC:__mci_irq_handler,879 raw_int:100 err! [ERR] SDC:SDC err, cmd 8, [ERR] SDC:sdc 663 abnormal status: RespErr SD:sd1.0 or mmc SD:***** Try sdio ***** [WRN] SD:card claims to support voltages below the defined range.These will be ignored. SD:sdio highspeed SD:mmc_sdio_init_card bus width type:2 SD: ============= card information ============== SD:Card Type : SDIO SD:Card Spec Ver : 1.0 SD:Card RCA : 0x0001 SD:Card OCR : 0x90ffffff SD: vol_window : 0x00ffffff SD: to_1v8_acpt : 1 SD: high_capac : 1 SD:Card CSD : SD: speed : 50000 KHz SD: cmd class : 0x0 SD: capacity : 0MB SD:Card CUR_STA : SD: speed_mode : DS: 25 MHz SD: bus_width : 2 SD: speed_class : 0 SD:============================================= SD:***** sdio init ok ***** [ 0.600][netmgr]start wifi [ 0.600][WiFiCONF]WIFI is not running [ 0.610][netmgr_wifi]ssid{SSID_Undef}, psk{} [ 0.610][WiFiCONF]WIFI is not running [ 0.640][WiFiCONF]Initializing WIFI ... [ 0.670][WIFI_IO]sdio_irq_thread enter IRQ routine [ 3.240][WiFiCONF]WIFI initialized [ 3.240][WiFiCONF]a2dp_case_wifi_slot: 35 [ 4.580][WIFI]ERROR: STA Task, wifi connect failed! try another [ 5.920][WIFI]scan done! [ 6.580][WIFI]Target AP not found [ 6.580][app]Net down [ 6.580][AppExp]EVENT_NETMGR_NET_DISCON [ 6.590][AppExp]Net Reset after 3 second ``` **WiFi配置** ```cli ifconfig ap ``` 其中指的是WiFi名称,指的是WiFi密码。配置完成之后输入reboot命令进行复位,或者通过开发板的复位键进行复位。 ``` [11:25:53.497]收←◆[ 7.560][WIFI]@@@@@@@@@@@@@@ Connection Success @@@@@@@@@@@@@@ [ 7.560][netmgr]start dhcp [11:25:55.167]收←◆[ 9.230][netmgr]IP: 192.168.31.61 [ 9.230][init]Got IP [ 9.230][init]NTP Start [ 9.260][NTP]ntp1.aliyun.com [11:25:55.238]收←◆[ 9.300][NTP]NTP sec: 1660620356 usec: 22204 [ 9.300][NTP]sync success [ 9.300][init]NTP Success Usage: web http|https : web http get , such as web http get http://www.xrvm.cn/ ``` **HTTP测试** 通过串口CLI输入 `web http` 命令进行HTTP访问测试。 ```cli [11:28:04.012]发→◇web http □ [11:28:04.021]收←◆web http ...(省略)... [ 143.160][example]++++++++++++++ HTTP HEAD TEST OK [ 143.170][example]HTTP_EVENT_DISCONNECTED ``` **HTTPS测试** 通过串口CLI输入 `web https` 命令进行HTTPS访问测试。 ```cli [11:30:53.596]发→◇web https □ [11:30:53.607]收←◆web https ...(省略)... [ 164.400][example]++++++++++++++ HTTPS TEST OK [ 164.410][example]HTTP_EVENT_DISCONNECTED ``` **自定义URL测试** 通过串口CLI输入 `web http get ` 命令进行HTTP GET访问测试。比如输入 `web http get http://www.xrvm.cn`。 ```cli [13:40:13.338]发→◇web http get http://www.xrvm.cn □ [13:40:13.343]收←◆web http get http://www.xrvm.cn ...(省略)... [8069.410][example]++++++++++++++ HTTP GET TEST OK ```