STM32
直播中

李娜

8年用户 1723经验值
私信 关注
[问答]

怎样使用STM32去封装HTTP协议呢

怎样使用STM32去封装HTTP协议呢?有哪些步骤?

回帖(1)

王赛

2021-10-28 14:43:45
  使用STM32封装HTTP协议
  通过封装HTTP头,向服务器发送GET请求,通过GET请求上传数据,并获取返回值
  #include 《string.h》
  #include 《stdio.h》
  #include 《stdint.h》
  char text[30];
  char temp[10];
  /**
  * @brief 组HTTP GET报文
  * @param pkt 报文缓存指针
  * @param key key唯一识别码
  * @param data 数据
  */
  uint32_t HTTP_GETPkt(char *pkt, const char *key, int data)
  {
  *pkt = 0;
  memset(temp, 0, 10);
  memset(text, 0, 30);
  // 组装GET请求字符串
  sprintf(temp,“%d”, data);
  strcat(text, “auth_key=”);
  strcat(text, key);
  strcat(text, “&”);
  strcat(text, “data=”);
  strcat(text, temp);
  // 向服务器发送GET请求的文件地址
  strcat(pkt, “GET /getinfo.php?”);
  strcat(pkt, text);
  // 使用1.1版本HTTP
  strcat(pkt, “ HTTP/1.1rn”);
  // 服务器所在地址,这是自己电脑通过无线局域网建立的服务器
  // IP:192.168.1.108,PORT:8888
  strcat(pkt, “Host: 192.168.1.108:8888rn”);
  // 保持连接
  strcat(pkt, “Connection: Keep-Alivern”);
  // 不使用缓存
  strcat(pkt, “Cache-Control: no-cachern”);
  strcat(pkt, “rnrn”);
  return strlen(pkt);
  }
  通过调用HTTP_GETPkt()函数并传入指定参数,就可以通过局域网上传数据到自己搭建的服务器,当应用于公网时,只需要把IP和PORT做相应修改即可。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分