基於STM32封裝的HTTP請求
阿新 • • 發佈:2019-01-24
使用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做相應修改即可。