GET 將資料放入環境變數 QUERY_STRING,長度受限(約 200 字元)。POST 將編碼後的查詢字串透過標準輸入 stdin 傳給 CGI 程式,長度由環境變數 CONTENT_LENGTH 指定,無實際上限。
char* clen = getenv("CONTENT_LENGTH");
int len = atoi(clen);
char* query_str = new char[len + 1];
cin.read(query_str, len);
query_str[len] = '\0';
CGI_vector query(query_str); // 同樣解析名稱/值對
關鍵差別:用 cin.read() 讀取指定長度的標準輸入,而非 getenv("QUERY_STRING")。解析後的 CGI_vector 用法與 GET 完全相同。
表單指定 method="POST"。Applet 送 POST 需額外建立 URLConnection,啟用 setDoOutput(true),取得 OutputStream 寫入查詢字串,再從 InputStream 讀取回應。注意:showDocument() 會阻擋 POST 資料傳送,必須在元件(如 TextArea) 顯示回應。