1. 程式人生 > >基於STM32封裝的HTTP請求

基於STM32封裝的HTTP請求

使用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.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做相應修改即可。