Ai-M61-32U,发送http 学习

[复制链接]
查看1407 | 回复10 | 2023-12-22 23:28:38 | 显示全部楼层 |阅读模式
大家好,我是来自大陆北方的网友,相信大家手里都拿到了Ai-M61-32U
有些人苦恼不知道怎么连接wifi和发送http请求。
默认请求成功
换了一个网站 直接卡死
又换了一个网站
  1. 2023-12-22 22:43:07.600] → ␛[0m[I][] CODE_WIFI_ON_CONNECTED␍␊

  2. [2023-12-22 22:43:07.724] → ␛[0m[I][] [APP] [EVT] wifi_event_handler, CODE_WIFI_ON_GOT_IP␍␊
  3. [0] wl1: MAC=b4:0e:cf:2b:09:e3 ip=192.168.43.168/24 UP,CONNECTED␊
  4. ␛[0m[I][] CODE_WIFI_ON_GOT_IP␍␊
  5. Http client task start ...␍␊
  6. Host:ip.geo.iqiyi.com/cityjson, Server ip Address : 255.255.255.255:80␍␊

  7. [2023-12-22 22:43:26.183] → Http client connect server falied!␍␊
  8. exception_entry␍␊
  9. mcause=38000001␍␊
  10. mepc:00000000␍␊
  11. mtval:00000000␍␊
  12. Instruction access fault␍␊

复制代码
查看代码
http路径未处理 只能请求主页。
定位问题:
wifi_http_client.h

启动ai分析
  1. 导入所需的头文件和库:代码中使用了一些系统和网络相关的头文件和库,包括unistd.h、stdlib.h、stdio.h、sys/socket.h、lwip/api.h、lwip/arch.h、lwip/opt.h、lwip/inet.h、lwip/errno.h和netdb.h。

  2. 定义宏和全局变量:代码中定义了一些宏和全局变量,包括HOST_NAME、get_buf和recv_buf。其中,HOST_NAME是一个未使用的宏,get_buf是一个默认的HTTP请求指令,recv_buf是接收缓冲区。

  3. 定义信号处理函数:代码中定义了一个名为test_close的信号处理函数,用于在收到信号时关闭socket连接。

  4. 定义默认请求和帮助信息:代码中定义了一个名为PING_USAGE的宏,用于显示默认请求的使用方法和参数说明。

  5. 定义HTTP客户端初始化函数:代码中定义了一个名为wifi_test_http_client_init的函数,用于初始化HTTP客户端并发送HTTP请求。该函数接受命令行参数作为输入,包括hostname和port。

  6. 解析命令行参数:函数中解析命令行参数,获取hostname和port。

  7. 创建socket连接:函数中使用socket函数创建一个TCP socket连接。

  8. 连接服务器:函数中使用connect函数将socket连接到指定的服务器。

  9. 发送HTTP请求:函数中使用write函数向服务器发送HTTP请求。

  10. 接收和打印响应:函数中使用recv函数接收服务器的响应,并使用printf函数打印响应内容。

  11. 延时和关闭连接:函数中使用vTaskDelay函数进行延时,然后使用closesocket函数关闭socket连接。
复制代码
get_buf是一个默认的HTTP请求指令

跟进去是这样。

static const uint8_t get_buf[] = "GET / HTTP/1.1 \r\nHost: www.gov.cn\r\n\r\n";


修改
static const uint8_t get_buf[] = "GET /cityjson HTTP/1.1 \r\nHost: ip.geo.iqiyi.com\r\n\r\n";



  1. Host:ip.geo.iqiyi.com, Server ip Address : 123.126.131.45:80␍␊
  2. Http client connect server success!␍␊
  3. Press CTRL-C to exit.␍␊
  4. HTTP/1.1 200 OK␍␊
  5. Content-Type: text/plain; charset=utf-8␍␊
  6. Transfer-Encoding: chunked␍␊
  7. Connection: keep-alive␍␊
  8. Vary: Accept-Encoding␍␊
  9. Server: APISIX/2.0␍␊
  10. Server: QWS␍␊
  11. Date: Fri, 22 Dec 2023 15:04:02 GMT␍␊
  12. Access-Control-Allow-Origin: *␍␊
  13. ␍␊
  14. d7␍␊
  15. var returnIpCity ={"code":"A00000", "data": {"country":"", "province":"", "city":"", "country_id":0, "province_id":0, "city_id":0, "location_id":0, "isp_id":0, "isp":"", "longitude":0, "latitude":0, "ip":"0.0.0.0"}}
复制代码
结果 还是不正确 错误400请求 不知道哪来的,可能是http设置的有问题。
让ai 写个代码 3,2,1就好了
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <string.h>

  4. #define MAX_HEADER_SIZE 1024

  5. char* create_http_request_header(const char* method, const char* host, const char* path)
  6. {
  7.     time_t now;
  8.     struct tm *gmt;
  9.     char time_str[64];
  10.     static char header[MAX_HEADER_SIZE];

  11.     // 获取当前时间
  12.     now = time(NULL);
  13.     gmt = gmtime(&now);

  14.     // 将时间格式化为HTTP头中的日期格式
  15.     strftime(time_str, sizeof(time_str), "%a, %d %b %Y %H:%M:%S GMT", gmt);

  16.     // 创建HTTP请求头
  17.     snprintf(header, MAX_HEADER_SIZE, "%s %s HTTP/1.1\r\n"
  18.                                        "Host: %s\r\n"
  19.                                        "User-Agent: MyClient\r\n"
  20.                                        "Accept: */*\r\n"
  21.                                        "Date: %s\r\n"
  22.                                        "\r\n",
  23.              method, path, host, time_str);

  24.     return header;
  25. }

  26. int main()
  27. {
  28.     char* request_header = create_http_request_header("GET", "www.example.com", "/");
  29.     printf("%s", request_header);
  30.     return 0;
  31. }
复制代码


回复

使用道具 举报

san | 2023-12-22 23:59:30 | 显示全部楼层
学习
回复

使用道具 举报

1084504793 | 2023-12-23 09:32:40 | 显示全部楼层
学到了
回复

使用道具 举报

李白百 | 2023-12-23 11:28:01 | 显示全部楼层
学习了
回复

使用道具 举报

lazy | 2023-12-23 14:55:50 | 显示全部楼层
Ai可以代替我们了
回复 支持 反对

使用道具 举报

WT_0213 | 2023-12-23 15:05:59 | 显示全部楼层
还得是ai
回复

使用道具 举报

iiv | 2023-12-23 21:31:20 | 显示全部楼层
ai解放双手
回复 支持 反对

使用道具 举报

bzhou830 | 2023-12-25 08:44:29 | 显示全部楼层
AI这么强大,要失业了
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

AXK123456 | 2023-12-25 09:31:34 | 显示全部楼层
学到了
回复

使用道具 举报

lazy | 2023-12-25 09:42:14 | 显示全部楼层
向AI学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则