基于STM32封装的HTTP请求

使用STM32封装HTTP协议


通过封装HTTP头,向服务器发送GET请求,通过GET请求上传数据,并获取返回值

#include 
#include 
#include 

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.1\r\n");
  // 服务器所在地址,这是自己电脑通过无线局域网建立的服务器
  // IP:192.168.1.108,PORT:8888
  strcat(pkt, "Host: 192.168.1.108:8888\r\n");
  // 保持连接
  strcat(pkt, "Connection: Keep-Alive\r\n");
  // 不使用缓存
  strcat(pkt, "Cache-Control: no-cache\r\n");
  strcat(pkt, "\r\n\r\n");
  
  return strlen(pkt);
}

通过调用HTTP_GETPkt()函数并传入指定参数,就可以通过局域网上传数据到自己搭建的服务器,当应用于公网时,只需要把IP和PORT做相应修改即可。

STM32 上传源码:https://github.com/PotoYang/STM32_HTTP_DataTrans

你可能感兴趣的:(STM32)