STM 32パッケージによるHTTPリクエスト

6646 ワード

STM 32で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
"
); // , // IP:192.168.1.108,PORT:8888 strcat(pkt, "Host: 192.168.1.108:8888\r
"
); // strcat(pkt, "Connection: Keep-Alive\r
"
); // strcat(pkt, "Cache-Control: no-cache\r
"
); strcat(pkt, "\r
\r
"
); return strlen(pkt); }

HTTP_を呼び出すことでGETPkt()関数は指定パラメータを入力し、ローカルエリアネットワークを通じて自分で構築したサーバーにデータをアップロードすることができ、パブリックネットワークに適用する場合は、IPとPORTを相応の修正を行うだけでよい.
STM 32アップロードソース:https://github.com/PotoYang/STM32_HTTP_DataTrans